在C#中想要非当前窗体获得焦点

来源:百度知道 编辑:UC知道 时间:2024/06/04 01:51:53
在VS2005C#中有两个窗体form1和form2,系统默认运行form1,在form2上有一个文本框textbox。在form1的Load()事件中有如下代码:Form2 frm = new Form2 ;frm.Show();系统的运行结果是先显示Form2,然后再显示Form1,Form1将Form2盖住了,焦点在Form1上。
问题是:我想让Form2中的文本框textbox获得焦点,怎么做?请大家指点。
按照fover0的指点form2确实显示在form1之上了,但是焦点仍然在form1上。我想让Form2上的文本框获得焦点,请大家指点。

在Form1的Load()事件中添加代码:

Form2 frm = new Form2();
if(frm.ShowDiaLog()==DialogResult.OK)
{}

行了!

在Form2 frm = new Form2;前先加一句this.show();

你可以在Form2里写一个Show的重载 和一个记录父窗口的变量
private Form1 Parent;
public void Show(Form1 parent)
{
this.Show();
this.Parent=parent;
}
然后在Form1 的load里
Form2 frm = new Form2 ;frm.Show(this);

之后就可以使用Form2里的parent直接控制Form1了
想做什么都随你

补充
把你的textbox的限制设置为PUBLIC (默认为私有)
Form2 frm = new Form2 ;frm.Show(this);
frm.Textbox1.focus();

说那么多费话干嘛。
一句话,
非活动窗口做不到焦点。