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

使用带有滚动条的任何控件时,不会触发MouseWheel事件(在C#Windows窗体中)分享

时间:2023-04-11 01:29:46 C#

C#学习教程:使用带滚动条的控件时,不会触发MouseWheel事件(C#WindowsForms)Windows窗体)当我使用带有滚动条的任何控件(ListBox、Panel、TextBox)时,MouseWheel事件不会触发。重新出现问题:publicclassForm1:Form{privatereadonlyButtonbutton1;私有只读文本框textBox1;privatevoidbutton1_MouseWheel(objectsender,MouseEventArgse){ToString();//当下面的行取消注释时不会触发}publicForm1(){button1=newButton();textBox1=new文本框();暂停布局();button1.Location=newSystem.Drawing.Point(80,105);button1.Size=newSystem.Drawing.Size(75,23);button1.MouseWheel+=button1_MouseWheel;button1.Click+=button1_Click;textBox1.Location=newSystem.Drawing.Point(338,105);//textBox1.Multiline=true;//取消注释//textBox1.ScrollBars=ScrollBars.Vertical;//取消注释这个textBox1.Size=newSystem.Drawing.Size(100,92);ClientSize=newSystem.Drawing.Size(604,257);控件。添加(文本框1);控件。添加(按钮1);恢复布局(假);执行布局();}//单击按钮设置焦点,但即使我这样做是显式的Focus()或Select()//仍然不起作用privatevoidbutton1_Click(objectsender,System.EventArgse){button1.Focus();按钮1.选择();我有同样的问题,对我有用的是在控件中为事件MouseEnter添加一个处理程序,可以在有或没有焦点的情况下被解雇,之后我可以毫无问题地获得mouseWheel事件。您通常需要确保将要处理MouseWheel事件的控件处于活动状态。例如,尝试在FormLoad(或Shown)事件中调用button1.Select(),然后使用滚轮。例如:privatevoidForm1_Load(objectsender,EventArgse){button1.MouseWheel+=newMouseEventHandler(button1_MouseWheel);按钮1.选择();我找到了解决方案,gility是默认的“鼠标配置”。LenovoUSBOpticalMouse鼠标默认配置为:ControlPanel/Mouse/Wheel/Whell->EnableUniversalScrolling;我更改为:ControlPanel/Mouse/Wheel/Whell->OnlyuseMicrosoftOffice97scrollingemulation现在.net代码MouseWheel使用FocusedControl。但问题是:有什么想法吗?我尝试了您的示例,并且MouseWheel事件仅在按钮聚焦时触发,无论该行是否带有注释。此行为是设计使然。(MouseWheel事件,如键盘事件进入焦点控件)以上是C#学习教程:使用任何带滚动条的控件时,MouseWheel事件(在C#WindowsForms中)不会被触发。很有用,需要多了解C#学习教程。希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: