//---登陆窗口
public bool bResult=false ; //是否登陆设置private void btnSubmit_Click(object sender, EventArgs e)//点确定按钮
  {
    if ((this.UserPwd.Trim() == this.txbPwd.Text.Trim()) && UserPwd != "")
         {
            bResult = true;
            this.Close();                
          }
      else
         {
            bResult = false;
             MessageBox.Show("请确认你的用户名或密码是否正确");
           }
        }
//----主窗口
public frmMain()
     {
        InitializeComponent();
        frmLogin loginFrm = new frmLogin();
        loginFrm.ShowDialog();
          if (loginFrm.bResult==true) //--登陆成功
           {
             Application.Run(new frmMain());
            }
           
         }
输入正确密码后,还是跳出登陆窗口,反而输入错了,报MessageBox错信息后就能进入主窗口.百思不得其解???

解决方案 »

  1.   

    不是这么做第...
    private void btnSubmit_Click(object sender, EventArgs e)//点确定按钮
      {
        if ((this.UserPwd.Trim() == this.txbPwd.Text.Trim()) && UserPwd != "")
             {
               return DialogResult.Yes;          
              }
          else
             {
                            MessageBox.Show("请确认你的用户名或密码是否正确");
               }
            }
    //推出按钮
    {
    return DialogResult.No;
    } DialogResult dr =loginFrm.ShowDialog();if(dr == DialogResult.Yes)
    {}
    else
    {
    this.close();
    }
      

  2.   

    1. 你没处理login成功后把loginForm销毁, 自然每次login成功都继续弹出LoginForm了2. 你没处理login失败的情况, 结果MainForm继续出现了
      

  3.   

    bResult = true;
    close();
    不是把loginForm销毁了吗?
    抄书的都错,现在的书害人不浅啊!
      

  4.   

    bResult = true;
    close();
    不是把loginForm销毁了吗?
    抄书的都错,现在的书害人不浅啊!
    ________________________________
    就是,尽信书则不如无书,唉!
    this.close();
    程序都关了还登录个P啊
      

  5.   

    //---登陆窗口
    public bool bResult=false ; //是否登陆设置
    public frmLoginloginFrm = new frmLogin();private void btnSubmit_Click(object sender, EventArgs e)//点确定按钮
      {
        if ((this.UserPwd.Trim() == this.txbPwd.Text.Trim()) && UserPwd != "")
             {
                bResult = true;
                this.Hide();                
              }
          else
             {
                bResult = false;
                 MessageBox.Show("请确认你的用户名或密码是否正确");
               }
            }
    //----主窗口
    public frmMain()
         {
            InitializeComponent();
            loginFrm.ShowDialog();
            if (loginFrm.bResult==true) //--登陆成功
            {
                loginFrm.Close();
                Application.Run(new frmMain());
            }
         }
      

  6.   

    public frmMain()
         {
            InitializeComponent();
            frmLogin loginFrm = new frmLogin();
            loginFrm.ShowDialog();
              if (loginFrm.bResult==true) //--登陆成功
               {
                 Application.Run(new frmMain());
                }
               
             }知道出什么问题了 你在这个构造函数里面加了 Application.Run(new frmMain());
    结果登录成功后,又执行了frmMain()这个构造函数,也就将 
    frmLogin loginFrm = new frmLogin();
            loginFrm.ShowDialog();
              if (loginFrm.bResult==true) //--登陆成功
               {
                 Application.Run(new frmMain());
                }这段代码又重新执行了一遍.也就是说,只要你登录成功就会弹出让你登录的窗口来
      

  7.   

    这样没问题,我
    入口程序中:
    XFrmLogin frmLogin = new XFrmLogin();
    frmLogin.ShowDialog();
    if (frmLogin.DialogResult.Equals(DialogResult.OK))
    {
        Application.Run(new XFrmMain());
    }
    其中:XFrmLogin是登陆窗体,XFrmMain是主窗体。
    ==========================
    登陆窗体
    if (password == txtPassword.Text.Trim())
    {
        this.DialogResult = DialogResult.OK;
        this.Close();
    }
    else
    {
        MessageBox.Show("错误的用户名或密码!");
        this.DialogResult = DialogResult.None;
    }
      

  8.   

    TO:patrickpan(离别钩) 
    也不行,程序没有多大改变。结果登录成功后,又执行了frmMain()这个构造函数
    loginFrm.ShowDialog();又跳出来,跳不出这个循环