【发布时间】:2016-05-24 10:36:20
【问题描述】:
我有一个textbox,当我用鼠标滚轮向下滚动表单并用鼠标点击文本框时,它会停止滚动。
有没有办法避免这种情况?
【问题讨论】:
-
鼠标指针通常不会改变文本编辑器,您肯定可以更好地表达吗?使用 Label 而不是 TextBox 将是避免混淆用户的最明显方法..
标签: vb.net mousewheel
我有一个textbox,当我用鼠标滚轮向下滚动表单并用鼠标点击文本框时,它会停止滚动。
有没有办法避免这种情况?
【问题讨论】:
标签: vb.net mousewheel
好的,如果我理解正确,您正在搜索的是在传递您的 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 被关注,您有几个解决方案
ReadOnly 属性设置为True没有人可以在您的TextBox 中输入文本,除非您以编程方式输入。但是,仍然可以单击它,如果单击,您将看到闪烁的光标(不知道英文名称)。当移动器悬停时,它会变成一个光标。
这意味着该选项允许将焦点放在控件上,但无法输入数据。
Enabled 属性设置为False同样,无法输入任何数据。另外,无法点击,鼠标悬停也不会改变。
这意味着此选项不允许将焦点放在控件上。
Label
如果没有人能够在您的TextBox 中插入数据,那么最好将Label 放在那里。如果您选择选项 1 或 2,那是因为在某些时候您可能允许用户更改里面的文本。但如果只由程序修改,Label 就足够了。
绝对不允许将焦点放在标签上。
【讨论】: