如果Form1是登陆窗体,正确输入用户名和密码后点击确定,如何使程序跳转到主窗体Form2,并且关闭Form1?最近看到有人这样解决:
在Program.cs里这样定义:static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);            //新建窗口(Form2是登陆之后打开的窗体)
            Form1 Log = new Form1(); 
                       
             //使用模式对话框方法显示Log
            Log.ShowDialog();            //DialogResult就是用来判断是否返回父窗体的
            if (Log.DialogResult == DialogResult.OK) 
            {
                //在线程中打开主窗体
               Application.Run(new Form2());               
            }            
        }
在登陆窗口中验证结束后要赋值Log.DialogResult = DialogResult.OK 
但是这个必须将Button属性的DialogResult属性设置为OK,可是一旦设置为OK无论是否验证正确,都会打开下一窗体;
那位高手能帮忙解决一下!谢谢!

解决方案 »

  1.   

    在Form1里加一个自定义属性
     
      

  2.   

    if (Log.Success== 100)
    {
    //在线程中打开主窗体
    Application.Run(new Form2());
      

  3.   

    login frmlogin = new login();
                if (login.ShowDialog() == DialogResult.OK)
                {
                    Application.Run(new mainform());
                }

    private void button1_Click(object sender, EventArgs e)
            {
                Thread th = new Thread(new ThreadStart(new MethodInvoker(delegate
                    {
                        this.Invoke(new MethodInvoker(delegate { this.Close(); }));
                        Application.Run(new mainform());
                    })));
                th.Start();
            }
      

  4.   

    第二种方法是主要有线程来处理的吗?里面的Invoke方法是干什么用的?
      

  5.   

    我也刚写了个关于登录的程序,但是我不是像你这样的!我的代码是这样的
     from2 f=new from2;
     f.ShowDialog(this);
     
      

  6.   

    主窗体,应该是不能够关闭的,所使用的方法,都是Hide(),或者是visible=false,隐藏起来。