我的VB.Net 2.0项目中有一个NumericUpDown控件。当用户在控件内单击鼠标并向左或向右拖动时,我希望控件的值相应增加或减少。
我遇到的问题是,一旦鼠标指针位于控件的边界内并且按下了鼠标按钮,我就无法捕获鼠标移动事件。我已经尝试重写onMouseMove()事件,但是当鼠标移动到NumericUpDown控件的文本框部分时,此事件仅触发一次。但是,当移动到同一控件的向上/向下按钮时,事件会持续触发。
我仍然想保留控件的正常操作:能够输入值,使用向上和向下按钮来更改值等...
任何人都有任何建议尝试?谢谢!
答案 0 :(得分:1)
鼠标事件转到NUD内的TextBox。您可以从Controls属性获取对它的引用,索引1是文本框:
Public Sub New()
InitializeComponent()
AddHandler NumericUpDown1.Controls(1).MouseDown, AddressOf NudMouseDown
AddHandler NumericUpDown1.Controls(1).MouseMove, AddressOf NudMouseMove
End Sub
这有点违反了规则,但没关系,这种控制永远不会改变。