在输入时以数字上下突出显示/选择文本



将 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 时,事件将按以下顺序触发:

  1. 进入
  2. 得到焦点
  3. 鼠标向下
  4. 点击
  5. 鼠标向上

您可能知道,在具有文本字段的控件中,本机行为将光标放置在文本框内单击的任何位置。这就是导致您的问题的原因。您已经在 Enter 选择了文本,但随后出现了一堆鼠标事件并撤消了您所有的辛勤工作。显而易见的解决方案是只使用 MouseUp 事件,因为它位于列表的末尾,但 MouseUp 将在您在控件内单击的任何位置触发,因此您必须确定该行为是否可接受。

最新更新