C#如何打开另一个新窗口的同时关闭自身窗口?比如登陆后,把登陆窗口关掉

解决方案 »

  1.   

    Form2 fm = new Form();
    fm.Show();
    this.Hide();
      

  2.   

    this.Hide();会不会有影响?
    QQ也这样做?
      

  3.   


    private void btLogin_Click(object sender, EventArgs e)
            {
                if (BLUI.checkLogin(UI))
                {
                    this.Hide();
                    MainFrm frm = new MainFrm();
                    frm.Show();
                }
                else
                {
                    MessageBox.Show("登录失败!");
                    txtName.Focus();
                    txtName.SelectAll();
                }
            }
      

  4.   

    在Programs静态类中,使用以下代码实现:static void Main()
    {
        if (new FrmLogin().ShowDialog().DialogResult != DialogResult.OK)
            return;
        
        Application.Run(new MdiForm());
    }
      

  5.   

    Input FormMain = new Input();
                    FormMain.ShowDialog();
                    this.Hide();好象没用
      

  6.   

    你在登陆窗口的登陆按钮里用这个方法this.Hide(); 
    这个可以把登陆窗口隐藏了。
      

  7.   

    用hide()方法不好吧!后面还要处理它。
      

  8.   


    我是用button的,那new FrmLogin().ShowDialog().DialogResult 等于哪个值?
      

  9.   


    如果是写登录窗口,应在program类中以我贴出来的代码来处理比较合适。
    选择登录窗体里面的那个button,在属性中有一个DialogResult的下列框,选择OK即可。
      

  10.   

    [Quote=引用 11 楼 kssys 的回复:]
    引用 9 楼 lsd123 的回复:
    引用 4 楼 kssys 的回复: 
    在Programs静态类中,使用以下代码实现: static void Main() 

    if (new FrmLogin().ShowDialog().DialogResult != DialogResult.OK) 
    return; Application.Run(new MdiForm()); 

    我是用button的,那new FrmLogin().ShowDialog().DialogResult 等于哪个值? 
     如果是写登录窗口,应在program类中以我贴出来的代码来处理比较合适。 
    选择登录窗体里…
    我要在new FrmLogin().ShowDialog()里判断他是否是合法用户,怎么弄?
      

  11.   

    Form2 fm = new Form(); 
    fm.Show(); 
    this.Hide();
      

  12.   

    楼主看这个:
    .NET中窗体间相互访问的几种方式
      

  13.   


    有两种方式,一种是设置button的DialogResult 为DialogResult.OK,另一种方式是不设置button的DialogResult,这种方式的处理方法是在button_Click事件中验证用户,如果验证成功,设置this.DialogResult 为DialogResult.OK,否則return
      

  14.   

    不要用hide了吧,好像在后面一直占着资源也不太爽阿。可以使用多线程。另外,你可以改变启动窗体的顺序,先启动后面的窗体,设置visible为false,再启动登陆窗口,验证正确后,登陆窗体dispose掉,主窗体visible设置为true
      

  15.   

    我只知道  在数据库窗口页面中
    可输入
    open(w_window)
    close(this)
    不知这里面有 close方法没有?
    我想肯定没有!
      

  16.   

    有this.Close()方法,
    但这个方法不行
      

  17.   


    new FrmLogin().ShowDialog() 中没有DialogResult 这个属性
      

  18.   

    FrmLogin login=new FrmLogin();
    if(login.ShowDialog()==DialogResult.OK)
    {
    Application.Run(new FrmMain());
    }
    //验证密码是否正确的事,给FrmLogin界面去做就可以了
      

  19.   

    Form2 fform2 = new Form(); 
    fform2 .Show(); 
    this.Close();
      

  20.   

    //FrmLogin界面:
    private void btnOK_Click(object sender, System.EventArgs e)//确定
    {
     if(密码错误) 
     {
       MessageBox.Show("该用户名或密码错误!");
       return;
     }
     this.DialogResult=DialogResult.OK;
    }private void btnCancel_Click(object sender, System.EventArgs e)//取消
    {
     this.DialogResult=DialogResult.Cancel;
    }
      

  21.   

    好了,可以了谢谢各位,特别是kssys,min_jie 
      

  22.   

    那就只能将主办面隐藏,不能将其关掉。。this.Hide();
    FrmLogin login=new FrmLogin();
    login.ShowDialog();
    this.Show();
      

  23.   

    都是用!
    this.Hide();
    //***********
    处理新窗体。。
    //*********** 
    this.Show();
      

  24.   

                    FormMain.ShowDialog();
                    this.Hide();
    最好不要用hide()
    因为这个画面已经没有什么存在的价值了。就要释放资源,hide()是资源不释放的,最好用exit()
      

  25.   

    当前窗体不是启动窗体的话直接close
    show新窗体
      

  26.   

    这个是基于WinForm的吧,给予Web的如何实现?
      

  27.   

            static void Main()
            {
               
                Form2 frm = new Form2();
                frm.ShowDialog ();
                if (frm.DialogResult == DialogResult.OK)
                {
                    Application.Run(new Form1());
                }
            }
      

  28.   

    个人感觉hide方式不好,浪费资源
    在主界面之前调用对话框好了
      

  29.   


    此时你的Mdi主窗体中应该增加一个“切换用户”的菜单,当点击此菜单时,执行以下过程:
    FrmLogin login=new FrmLogin();
    if (login.ShowDialog()==DialogResult.OK)
    {
        //在此处添加登录用户改变后的代码
    }
    login.Dispose();
      

  30.   

    private void   xcxx()
    {
    ///登录成功
    this.Close();
                    Thread t = new Thread(new ThreadStart(RunMainForm));
                    t.SetApartmentState(ApartmentState.STA);
                    t.Name = "Evaluation Main Application";
                    t.Start();
    }
    private void RunMainForm()
            {
                Application.Run(new MainForm());
            }private void LoginForm_FormClosed(object sender, FormClosedEventArgs e)
            {
                if (this.sc != null)
                {
                    this.sc.Close();
                }
                Application.Exit();
            }