在启动登陆窗体前,我用线程调用一个“测试网络,连接数据库……”的等待窗体,等所有都连接成功后,开始启动登陆窗体,但是登陆窗体启动后失去焦点,不是当前的活动窗体,怎么解决呢?我试了好多方法都无济于事,           
SetForegroundWindow(this.Handle);
this.Activate();
this.Focus();
this.Select(true, true);
请问有什么好方法吗?

解决方案 »

  1.   

    在窗体的shown事件写 在窗体第一次显示的时候 来一个Focus() 
      

  2.   

    static void Main(stirng[] args)
    {
       Application.Run(new SplashForm());
       Application.Run(new MainForm());
    }
      

  3.   

    调用的方法写到pageload里面 看可以不?
      

  4.   

    还是不行,现在是不但无法获得窗体焦点,而且主窗体设置的最前端this.TopMost = true;也不起作用,
     启动的是这个主窗体Application.Run(new frm_Main());
      

  5.   

    不管事,主窗体设置的最前端this.TopMost = true;也不起作用
      

  6.   

    在窗口里加一个edit控件。this.edit.fouse()
      

  7.   

    this.Show()Csdn好帮手——《Csdn收音机》即使监视社区动态!
      

  8.   


                    ljfwqFrm ljfrm = new ljfwqFrm();
                    ljfrm.ShowDialog();
                    if (ljfrm.DialogResult == DialogResult.OK)
                    {
                        dlFrm frm1 = new dlFrm();
                        frm1.ShowDialog();
                        if (frm1.DialogResult == DialogResult.OK)
                        {
                            Application.Run(new zjmFrm());
                        }
                    }ljfwqFrm 和dlFrm  都设置 TopMost = true
      

  9.   


    这个与我说的那个不符合,我是用另外一个线程调用的ljfrm窗体,调用完后再显示dlFrm,这时这个dlFrm就无法获取焦点了。
      

  10.   

    this.Show()  11楼的回答是正确的只有在窗体显示出来之后才可以赋焦点
    this.Show() 显示窗体 然后 再设置Focus就可以了