当前位置: 首页 > 编程语言 > C#

如何捕捉面板上的鼠标滚轮?分享

时间:2023-04-11 00:39:13 C#

面板上的鼠标滚轮怎么抓?如何在C#中捕获面板上的鼠标滚轮?我正在使用WinForms编辑:我现在正在尝试在PictureBox上进行。我的代码:this.pictureBox1.MouseClick+=newSystem.Windows.Forms.MouseEventHandler(this.pictureBox1_MouseClick);this.pictureBox1.MouseWheel+=newSystem.Windows.Forms.MouseEventHandler(this.pictureBox1_MouseClick);privatevoidpictureBox1_MouseClick(objectsender,MouseEventArgse){MessageBox.Show("点击");}点击有效。敦促不。为什么?Windows向具有焦点的控件发送WM_MOUSEWHEEL消息。那不是面板,也不是引起注意的控件。一旦你在面板上放置了一个控件,比如一个按钮,按钮就会获得焦点和信息。但是,该按钮不用于消息,它没有任何滚动。Windows注意到这一点并将消息发送给父级。这是小组,现在要开始了。您将找到可以在此答案中获得焦点的自定义面板的代码。更新:请注意,此行为在Windows10中已更改。默认情况下,“当我将鼠标悬停在非活动窗口上时滚动非活动窗口”选项。使鼠标滚轮的行为与其在浏览器或Office程序中的工作方式更加一致。在这种特定情况下,图片框现在将获得该事件。当心这个。如果您在组件上没有看到“MouseWheel”事件,则需要手动创建它。另外,我们需要关注组件,否则“MouseWheel”事件不会对组件起作用。我将向您展示如何为“pictureBox1”创建“MouseWheel”事件及其工作原理。在CONSFERUCTOR中,在组件上创建鼠标滚轮事件。初始化组件();this.pictureBox1.MouseWheel+=pictureBox1_MouseWheel;手动创建函数。根据我的示例,将其称为“pictureBox1_MouseWheel”privatevoidpictureBox1_MouseWheel(objectsender,MouseEventArgse){//youcandoanythinghere}在该组件上创建一个MouseHover事件(转到PicureBox1中的属性,选择事件,找到“MouseHover”并双击“MouseHover”事件)。调用“焦点()”;MouseHover事件中的方法。图片框1.焦点();现在运行程序。手动接线...this.panel1.MouseWheel+=newSystem.Windows.Forms.MouseEventHandler(this.panel1_MouseWheel);privatevoidpanel1_MouseWheel(objectsender,System.Windows.Forms.MouseEventArgse){///processmouseevent}更多简单的方法是在visualstudio中单击面板,转到属性视图面板,选择事件,找到并双击在“鼠标滚轮”事件上。在Winforms中,这是使用Control.MouseWheel事件实现的。获取鼠标滚轮事件很棘手。最简单的方法是使用this.MouseWheel+=newSystem.Windows.Forms.MouseEventHandler(this.panel1_MouseWheel);而不是this.panel1.MouseWheel+=newSystem.Windows.Forms.MouseEventHandler(this.panel1_MouseWheel);这样,窗体获取事件而不是控件。这种方法很简单但有一个问题:您只能在表单中使用一个鼠标滚轮事件。如果你有多个控件,获取鼠标滚轮事件的最佳方式是这个答案“ShehanSilva-weltZ”以上是C#学习教程:Howtocapturemousewheelonpanel?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: