我在表单控件聚焦方面遇到了一些问题。
在 form1 上,我单击一个按钮并运行以下代码:
private void btnTest_Click(object sender, System.EventArgs e)
{
form2 = new Form2();
Application.Idle += new EventHandler(Application_Idle);
form2.Show();
form2.Activate();
form2.textBox1.Focus();
Form3 form3 = new Form3();
form3.ShowDialog();
}
然后,在此 CLR 之后,我运行事件 Application_Idle,我在该事件上添加了一个必须关注 textBox2 控件的方法。
private void Application_Idle(object sender, EventArgs e)
{
form2.textBox2.Focus();
form2.textBox2.Select();
form2.textBox2.Focus();
Application.Idle -= new EventHandler(Application_Idle);
}
但是当我单击 form1 上的按钮时,我看到 Form2 显示,Form3 显示然后Application_Idle
方法引发,但form2.textBox2
控制没有得到关注......
如果我注释掉该form3.ShowDialog();
行,它可以正常工作,但是如何将一个表单元素与另一个表单激活集中在一起?(form3.ShowDialog()
)?
备注补充:问题也是我有一个严格的架构,我只能改变 Application_Idle 方法。