我现在的是登陆窗口登陆成功之后才显示主窗口。。
   private void Form1_Load(object sender, EventArgs e)
        {
            loginForm lf = new loginForm();
            bool logined = false;
            do
            {
                if (lf.ShowDialog(this) == DialogResult.OK)
                {
                    string u = "u";
                    string p = "p";
                    if (lf.UserName == u && lf.UserPwd == p)
                    {
                        logined = true;
                        lf.Close();
                    }
                    else
                    {
                        MessageBox.Show("非法登陆", "管理员登陆", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    }                }
                else 
                {
                    this.Close(); 
                }
            }
            while (!logined && (lf.DialogResult == DialogResult.OK));        }
在loginform里面这样写
        protected internal void button1_Click(object sender, EventArgs e)
        {
            this.DialogResult = DialogResult.OK;
        }        private void button2_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }
        public string UserName
        {
            get { return this.textBox1.Text; }
        }
        public string UserPwd
        {
            get { return this.textBox2.Text; }
        }

解决方案 »

  1.   

    不要用lf.ShowDialog(this) == DialogResult.OK 你验证通过后直接加载主窗体就可以啊
      

  2.   

    需要同时显示也可以用模态窗口吧?C++里是可以用,设置登录窗口为模态窗口,如果验证通过后就unload它,否则它就一直显示就可以了吧
      

  3.   

            private void Form1_Load(object sender, EventArgs e)
            {
                this.Show();
                using (Form2 frm = new Form2())
                {
                    frm.ShowDialog(this);
                }
            }主要是,在你登录窗口出现之前,调用一下,this.Show();
      

  4.   

    那你直接先show()你的主窗体,在show();后卖弄加上showdialog();这个是你的登录窗口,这样就可以了的
      

  5.   

    LZ你是在主窗口Load的时候show 登陆窗口的,所以在登陆窗口关闭并返回DialogResult.OK之间主窗口的Load函数不会返回,自然就不会显示主窗口了
    可以试着在Load函数里家一个Timer然后设timer的时间为100毫秒,到时间了之后显示登陆窗口,试试。
      

  6.   

    C#里确实有模态窗口,你查下MSDN
      

  7.   

    哇,楼上的真厉害,就是这样啊,同时焦点等问题也解决了啊。
    using用的好,出了这一段,就直接销毁掉。结贴给分
      

  8.   

    static void Main() 
    {
    Form1 f1=new Form1();
    f1.Show();
    Form2 f2=new Form2();
    f2.ShowDialog();
    //Application.Run(new Form1());

    }