0

我的 VB.Net 2.0 项目中有一个 NumericUpDown 控件。当用户在控件内单击鼠标并向左或向右拖动时,我希望控件的值相应地增加或减少。

我遇到的问题是,一旦鼠标指针位于控件边界内并且按下鼠标按钮,我就无法捕获鼠标移动事件。我已经尝试覆盖 onMouseMove() 事件,但是当鼠标移到 NumericUpDown 控件的文本框部分时,此事件只会触发一次。但是,当移到同一控件的向上/向下按钮上时,该事件会连续触发。

我仍然想保留控件的正常操作:能够输入一个值,使用向上和向下按钮更改值等......

有人有什么建议可以尝试吗?谢谢!

4

1 回答 1

1

鼠标事件转到 NUD 内的文本框。您可以从 Controls 属性中获取对它的引用,索引 1 是文本框:

Public Sub New()
    InitializeComponent()
    AddHandler NumericUpDown1.Controls(1).MouseDown, AddressOf NudMouseDown
    AddHandler NumericUpDown1.Controls(1).MouseMove, AddressOf NudMouseMove
End Sub

这有点违反规则,但没关系,这种控制永远不会改变。

于 2013-08-28T17:16:29.840 回答