我在某些面板中有一些TextBox。对于那些文本框,我设置了一个Enter事件函数。
private void TextBox_Enter(object sender, EventArgs e)
{
TextBox tBox = sender as TextBox;
tBox.HideSelection = false;
tBox.SelectAll();
tBox.HideSelection = true;
}
我执行此操作,以便用户可以选中或单击文本框并开始键入。现在,我已成功地以其他形式完成了这项工作。我现在的问题是,出于某种原因,将它们放入带有Enter事件的面板螺钉中。
在代码中插入一个断点告诉我,事件会被触发多次,在20或30秒左右。我也有一个Leave事件,但不会触发,只有Enter事件。只有在面板内时才会发生这种情况。
TextBoxes设置为TabStops并具有不同的TabIndex。
现在,我知道 导致它的原因,但不是原因。如果我删除tBox.HideSelection
我可以进入TextBox而不会多次触发Enter事件。不知道为什么代码会在Panel中被搞砸,因为代码在所述面板之外的工作方式也是如此。
任何帮助将不胜感激。感谢。
答案 0 :(得分:1)
试试这个......
Dim lFocused as Boolean
Private Sub TextBox1_GotFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox1.GotFocus
TextBox1.SelectAll()
lFocused = True
End Sub
Private Sub TextBox1_Leave(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox1.Leave
lFocused = False
End Sub
Private Sub TextBox1_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles TextBox1.MouseUp
lFocused = True
TextBox1.SelectAll()
End Sub