防止文本框捕获 MouseWheel 事件
Preventing a textbox from capturing the MouseWheel event
我有一个 textbox
,当我用鼠标滚轮向下滚动表单并用鼠标点击文本框时,它停止滚动。
有没有办法避免这种情况?
如果您只想要视觉部分,请将文本框的 属性 "Cursor" 更改为 "Arrow"
如果您不希望 TextBox
成为焦点,您有几个解决方案
- 将
ReadOnly
属性 设置为 True
没有人能够在您的 TextBox
中输入文本,除非您以编程方式输入。但是,仍然可以单击它,如果单击它,您将看到闪烁的光标(不知道英文名称)。当移动器悬停时,它会变成一个光标。
这意味着这个选项允许焦点在控件上,但是不能输入数据。
- 将
Enabled
属性 设置为 False
同样,将无法输入任何数据。此外,将无法点击它,如果将其悬停,光标也不会改变。
这意味着此选项不允许将焦点放在控件上。
- 改为
Label
如果没有人能够在您的 TextBox
中插入数据,也许最好将 Label
放在那里。如果您选择选项 1 或 2,那是因为在某些时候您可能允许用户更改其中的文本。但是如果只会被程序修改,Label
就够了。
永远不允许焦点在标签上。
好的,如果我没理解错的话,您正在搜索的是在传递 TextBox 时保持鼠标滚动。对吗?
我认为有一种方法可以实现这一点。但是,此代码尚未经过测试,因此如果有效,请通知我。
Public Sub New()
InitializeComponents()
'Other inits here
AddHandler TextBox1.MouseWheel, AddressOf TBMouseWheel
End Sub
Private Sub TBMouseWheel(sender As Object, e As MouseEventArgs)
Me.OnMouseWheel(e)
End Sub
这样,当您的文本框捕获 MouseWheel 事件时,它会传递到将处理它的表单(我认为)。抱歉,我现在没有机会对其进行测试,但我相信这应该可以解决问题。
我有一个 textbox
,当我用鼠标滚轮向下滚动表单并用鼠标点击文本框时,它停止滚动。
有没有办法避免这种情况?
如果您只想要视觉部分,请将文本框的 属性 "Cursor" 更改为 "Arrow"
如果您不希望 TextBox
成为焦点,您有几个解决方案
- 将
ReadOnly
属性 设置为 True
没有人能够在您的 TextBox
中输入文本,除非您以编程方式输入。但是,仍然可以单击它,如果单击它,您将看到闪烁的光标(不知道英文名称)。当移动器悬停时,它会变成一个光标。
这意味着这个选项允许焦点在控件上,但是不能输入数据。
- 将
Enabled
属性 设置为 False
同样,将无法输入任何数据。此外,将无法点击它,如果将其悬停,光标也不会改变。
这意味着此选项不允许将焦点放在控件上。
- 改为
Label
如果没有人能够在您的 TextBox
中插入数据,也许最好将 Label
放在那里。如果您选择选项 1 或 2,那是因为在某些时候您可能允许用户更改其中的文本。但是如果只会被程序修改,Label
就够了。
永远不允许焦点在标签上。
好的,如果我没理解错的话,您正在搜索的是在传递 TextBox 时保持鼠标滚动。对吗?
我认为有一种方法可以实现这一点。但是,此代码尚未经过测试,因此如果有效,请通知我。
Public Sub New()
InitializeComponents()
'Other inits here
AddHandler TextBox1.MouseWheel, AddressOf TBMouseWheel
End Sub
Private Sub TBMouseWheel(sender As Object, e As MouseEventArgs)
Me.OnMouseWheel(e)
End Sub
这样,当您的文本框捕获 MouseWheel 事件时,它会传递到将处理它的表单(我认为)。抱歉,我现在没有机会对其进行测试,但我相信这应该可以解决问题。