关于设置输入焦点的问题
gwhzh 2008-09-17 08:49:42 前两个星期测试我写的mobile应用程序,发现一个严重的Bug.有一个对象在传值过程中被突然丢失了.研究了两个星期,没有去解决这个问题,因为这个问题据我所想的,有两种解法.所以这个星期写了一例子,来研究这个问题产生的原因.
在启动窗体里面写的代码
private Form3 objfrm3 = null;
private void button4_Click(object sender, EventArgs e)
{
if ( objfrm3 == null )
{
objfrm3 = new Form3();
}
objfrm3.Owner = this;
//objfrm3.WhichOne = 400;
objfrm3.ShowDialog();
}
在Form3里面写的代码
private void textBox1_GotFocus(object sender, EventArgs e)
{
Debug.WriteLine("Box1");
}
private void textBox2_GotFocus(object sender, EventArgs e)
{
Debug.WriteLine( "Box2" ); }
private void Form3_Load(object sender, EventArgs e)
{
Debug.WriteLine("Load");
this.Show();
this.textBox1.Focus();
}
private void textBox1_LostFocus(object sender, EventArgs e)
{
Debug.WriteLine("Box1 leave");
}
private void textBox2_LostFocus(object sender, EventArgs e)
{
Debug.WriteLine( "Box2 leave" );
}
动作如下,运行程序,单击Button4
打印了:
Load
Box1
然后单击了TextBox2
打印了:
Box1 leave
Box2
Form3右上角的ok,关闭了Form3
打印了:
Box2 leave
再次单击Button4
打印了:
Load
Box2
Box2 leave
Box1
问题就在这里,为什么textBox2_GotFocus要先被调用?