1、问题描述:
Winorm中的2个TextBox控件在LostFocus事件弹出提示框,会弹出2次。
原因:
焦点在TextBox1中点击TextBox1,事件执行情况:TextBox1的LostFocus Messagebox.Show()时->TextBox2的LostFocus事件弹出MessageBox.Show()确认后->
继续执行:TextBox1的Messagebox.Show()。
解决:
1.方法一: textbox1 LostFocus中
Control control = this.ActiveControl;
if (control.Name.Equals(textBox1.Name)
{
MessageBox.Show("t1 lost");
}
如果是dev控件 则使用 if (control.Parent.Name.Equals(textBox1.Name)
textbox2 LostFocus中同上
2.方法二(通用)
全局变量string name;
TextBox1的Enter事件中 name = textBox1.Name;
LostFocus中:
if (name.Equals("textBox1"))
{
MessageBox.Show("t1 lost");
}
注意,需要在窗体加载事件中,将焦点设置为其他控件:
textBox5.Focus(); 只能在Form1_Activated设置
或者:在Load事件中
textBox5.TabIndex = 0;