none
登陆窗体关闭之后为何连同主窗体也关闭 RRS feed

  • 问题

  • 这是我在登陆窗体的点击确定按钮里写的代码:

    if (!(usernametxb.Text == string.Empty && pwdtxb.Text == string.Empty))
          {
            Main mainfm = new Main();
            mainfm.GetUsernameAndPwd(this.usernametxb.Text, this.pwdtxb.Text);
            mainfm.Show();
            this.Close();
          }
    

    mainfm是主窗体,为何我用close方法会把窗体也关闭掉,如果用hide方法就不会?

    2011年6月14日 9:16

答案

  • 您好,

    我想你的意图是先打开登入窗口, 然后确定按钮进入Main窗体, 是嘛?如果这样的话你可以试试下面的代码:

    private void MainForm_Load(object sender, EventArgs e)
        {
          Login loginfm = new Login();
          loginfm.ShowDialog();
        }

    或者你可以直接在你之前的代码中把this.close()改为this.Hide().

    如果还有任何疑问,请在这里分享下,我们乐意帮助你


    Vin Jin [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.


    2011年6月16日 5:10

全部回复

  • 应该是在主窗体中 启动登陆窗体,这个时候关闭登录窗体,主窗体不受影响。

    或者是先打开登陆窗体,然后在关闭登录窗体后,在打开主窗体。

     


    family as water
    2011年6月14日 13:03
  • 应该是在主窗体中 启动登陆窗体,这个时候关闭登录窗体,主窗体不受影响。

    或者是先打开登陆窗体,然后在关闭登录窗体后,在打开主窗体。

     


    family as water

    你说的第二个方法不是我贴出来的代码的做法吗?
    或者你可以贴一下代码吗?
    2011年6月14日 13:14
  • 因为你的mian函数是这样的

    Application.Run(new Login());

    当this.Close();被调用的时候回导致Applicaion.Exit()发生,于是所有的窗体都会退出。 


    http://feiyun0112.cnblogs.com/
    2011年6月15日 2:30
    版主
  • 那么应该改为Application.Run(new Main);启动主窗体,然后隐藏,创建登陆窗体实例,显示登陆窗体,当点击登陆按钮,新建一个主窗体实例,把用户名、密码传给主窗体

    在主窗体的构造函数里我这样写

      public Main()
        {
          InitializeComponent();
          Login loginfm = new Login();
          loginfm.Show();
          this.Hide();
    
        }
    

    2011年6月15日 2:35
  • 您好,

    我想你的意图是先打开登入窗口, 然后确定按钮进入Main窗体, 是嘛?如果这样的话你可以试试下面的代码:

    private void MainForm_Load(object sender, EventArgs e)
        {
          Login loginfm = new Login();
          loginfm.ShowDialog();
        }

    或者你可以直接在你之前的代码中把this.close()改为this.Hide().

    如果还有任何疑问,请在这里分享下,我们乐意帮助你


    Vin Jin [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.


    2011年6月16日 5:10
  • 我在program。.cs文件里创建窗体,并作了一些判断,而且都是用Hide()方法,谢谢你的解答
    2011年6月16日 5:19