用WPF做的登录界面,winform做的主界面,现在登录之后出现两个界面,关闭登录界面整个程序都会关闭,麻烦各位给点意见,谢谢

解决方案 »

  1.   

    用隐藏this.Hide();    不一定要关闭掉
    在登陆成功后隐藏就可以了this.Hide();   然后new出新窗体比如  
    this.Hide();
    Form f = new Form;
    f.Show();
      

  2.   

    并不是严格意义上的关闭,而是隐藏,Hide()方法
      

  3.   

    确实大部分都是这样的,先隐藏当前窗体(this.Hide()),再执行新的窗体(Show())即可
      

  4.   

    同意楼上,Hide()即可
    记得设置窗体不在系统任务栏显示
      

  5.   

    实际上hide并不是合适的做法,看看program.cs 都做了什么,想想怎么做?
      

  6.   

    尽量不要使用this.hiden();这个方法很难控制,用this.visivle 来控制。
      

  7.   

    可以在program类中,条件判断一下,比如  点登陆关闭登录窗体,打开主窗体,点关闭或退出,直接退出整个程序。
      

  8.   

    楼上加1在program的main方法中,先new Login,如果ShowDialog为OK,再Application.Run(new MainForm());        static void Main()
            {
                login login = new login();
                if (login.ShowDialog() == DialogResult.OK)
                    Application.Run(new MainForm());
            }
      

  9.   

    http://pan.baidu.com/s/1dEGCJdf
    登录窗口设计.rar
      

  10.   

    登录界面作为整个进程的主界面,跟你的业务设计的“主窗体”并不是同一个概念。所以它们之间要有起码的联动机制,例如private void button1_Click(object sender, EventArgs e)
    {
        //判断允许登录.......
        var f = new MainForm();
        f.FormClosed += (s, arg) =>
        {
            this.Close();
        }
        f.Show();
        this.Hide();
    }
    这里,登录窗体(this) 跟 MainForm 实例有联动机制,才能完成整个应用的主界面的切换(从登录界面换成真正的 mainform)。
      

  11.   

    如果你仅仅是把登录窗体(进程的主界面窗体)隐藏,把 MainForm 窗体实例显示出来,其实这是不对的,并没有成功地转移主窗体功能。
      

  12.   

    this.Close()不行的话   那就Hide()隐藏当前窗体