作了一个form,在上面放了两个txt和两个combobox,
Private Sub ComboBox1_Leave(ByVal sender As Object, ByVal e As System.EventArgs) Handles ComboBox1.Leave
Debug.WriteLine("ComboBox1_Leave")
Me.ComboBox1.Focus()
End Sub
Private Sub TextBox1_Leave(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox1.Leave
Debug.WriteLine("TextBox1_Leave")
Me.TextBox1.Focus()
End Sub
追加了如上代码,
把焦点设定在TextBox1上,用鼠标点击TextBox2,TextBox1_Leave触发了两次。
TextBox1_Leave
TextBox1_Leave
出现了两行Debug信息
用鼠标点击combobox上,则触发一次leave
如果把焦点设定在ComboBox1上,用鼠标点击TextBox2,ComboBox1_Leave触发了两次。
用鼠标点击ComboBox2上,则触发一次leave
请问这是什么问题?和环境有关系吗?
我用的是.net2003,.Net Framework 1.1 SP1
改为:
Private Sub ComboBox1_Leave(ByVal sender As Object, ByVal e As System.EventArgs) Handles ComboBox1.Leave
MsgBox("ComboBox1_Leave")
Me.ComboBox1.Focus()
End Sub
Private Sub TextBox1_Leave(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox1.Leave
MsgBox("TextBox1_Leave")
Me.TextBox1.Focus()
End Sub
只触发一次leave
guan zhu
使用msgbox应该出发两次,因为msgbox显示之后,你的焦点就会自动转移到msgbox上面了。