在输入时突出显示/选择数字更新的文本

时间:2018-04-13 17:22:06

标签: vb.net winforms

将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

我使用了一个断点来验证它确实运行了,但它似乎没有做任何事情。我错过了什么?

1 个答案:

答案 0 :(得分:1)

您的代码实际上正在按预期选择值,它几乎瞬间被鼠标事件撤消。单击以输入NumericUpDown时,事件将按以下顺序触发:

  1. 输入
  2. 的GotFocus
  3. 的MouseDown
  4. 点击
  5. 的MouseUp
  6. 您可能知道,在包含文本字段的控件中,本机行为会将光标放在文本框内单击的位置。这就是造成问题的原因。您已在Enter处选择了文本,但随后出现了一系列鼠标事件并撤消了所有您的辛勤工作。显而易见的解决方案是只使用MouseUp事件,因为列表末尾的事件,但MouseUp将触发您在控件内单击的任何位置,因此您必须确定该行为是否可以接受