将 VB.net 用于Windows表单应用程序。 我厌倦了总是不得不退格键数字上下控件的默认"0"。 我想做的是在输入时自动选择值,以便我可以键入它。
我试过这个:
Private Sub updown1_Enter(sender As Object, e As EventArgs) Handles updown1.Enter
Me.updown1.Select(0, updown1.Text.Length)
End Sub
我使用断点来验证它确实运行,但它似乎没有执行任何操作。 我错过了什么?
您的代码实际上是按预期选择值,它只是几乎立即被鼠标事件撤消。单击以输入 NumericUpDown 时,事件将按以下顺序触发:
- 进入
- 得到焦点
- 鼠标向下
- 点击
- 鼠标向上
您可能知道,在具有文本字段的控件中,本机行为将光标放置在文本框内单击的任何位置。这就是导致您的问题的原因。您已经在 Enter 选择了文本,但随后出现了一堆鼠标事件并撤消了您所有的辛勤工作。显而易见的解决方案是只使用 MouseUp 事件,因为它位于列表的末尾,但 MouseUp 将在您在控件内单击的任何位置触发,因此您必须确定该行为是否可接受。