form1.Visible = false;
form2.Show();button1_click
{
    form1.Visible = true;
    form2.Close();
}

解决方案 »

  1.   

    不行的!
    form2.Show();不能直接用,要new from2()
    同样在form2 的button1_click里,form1.Visible 不能直接用,怎么办?
    如果new一个form1 这样内存里不是有2个form1 吗?
      

  2.   

    登陆窗口:public class frmLogin : System.Windows.Forms.Form
    {
        private bool bLoginSuccessful;    protected override void OnClosed(EventArgs e)
        {
            base.OnClosed(e);
            if(bLoginSuccessful == false)
                Application.Exit();
        }private void btnLogin_Click(object sender, System.EventArgs e)
    {
    if (登陆成功)
    bLoginSuccessful = true;
    else
    bLoginSuccessful = false;
    }主窗口:// 显示系统登陆窗口
    frmLogin frm2 = new frmLogin();
    frm2.ShowDialog();
      

  3.   

    登陆按钮的click事件处理方法: private void btnLogin_Click(object sender, System.EventArgs e)
    {
    if(txtUserId.Text.Trim()=="")
    {
    errMsg.SetError(txtUserId,"请输入用户名");
    errMsg.SetError(txtPassword,"");
    txtUserId.SelectAll();
    txtUserId.Focus();
    return;
    } AccountAccess account = new AccountAccess();
    bool flag = account.AccountLogin(txtUserId.Text.Trim(), out currentAccount); if(flag)
    {
    if(txtPassword.Text == currentAccount.Password)
    {
    bLoginSuccessful = true;
    this.Close();
    }
    else
    {
    errMsg.SetError(txtUserId,"");
    errMsg.SetError(txtPassword,"密码错误,请重新输入");
    txtPassword.SelectAll();
    txtPassword.Focus();
    return;
    }
    }
    else
    {
    errMsg.SetError(txtUserId,"用户名不存在");
    errMsg.SetError(txtPassword,"");
    txtUserId.SelectAll();
    txtUserId.Focus();
    return;
    }
    }