我有一个带有多个控件的.net表单。文本框,标签......当表单显示在屏幕上时,文本框默认获得焦点。当我尝试使用鼠标滚轮滚动表单时,滚动消息基本上是文本框,因此表单不会滚动..
我尝试过设置
textbox.capture = false
form.capture = true;
form.focus();
但似乎没有任何东西可以将注意力从文本框中移开。任何线索如何强制表单获取鼠标事件而不是它的控件??
答案 0 :(得分:2)
Control.Focus()
州的MSDN documentation:
[...]
可以选择和接收控件 输入焦点如果满足以下条件 true:可选值 ControlStyles设置为true,它是 包含在另一个控件中,以及所有 它的父控件都是可见的 并启用。
中的Windows窗体控件 以下列表不可选。 从这些控件派生的控件 也是不可选择的。
- 面板
- 分组框中
- 图片框
- 进度
- 分离器
- 标签
- LinkLabel(当控件中没有链接时)
NoteNote:
Focus
是一种主要面向自定义控件作者的低级方法。 相反,应用程序员应该使用Select
方法或 子控件的ActiveControl
属性,或表单的Activate
方法。