解决方案 »

  1.   

    在formclosing事件判断检查输入,如果有问题就e.cancel=true;
      
    *****************************************************************************
    签名档: http://feiyun0112.cnblogs.com/
      

  2.   

    请参考下面代码,这个代码实现的功能是如果账号密码输入不正确并且不取消登录的话则会一直提示输入用户名密码,只有输入正确之后才会进行下面的操作这个相当于A窗体的按钮方法var frm = new FrmLogin();
                    var result = DialogResult.Cancel;                do
                    {
                        frm.Focus();
                        result = frm.ShowDialog();                    if (result == DialogResult.Cancel)
                        {
                            Application.Exit();
                            return;
                        }
                    }
                    while (result != DialogResult.Yes);
                    Application.Run(new FrmMain());
    下面是登录窗体相当于Btry
                {
                    Common.HttpHelper.HomePage(Common.CurrentUser.Cookie);
                    var result = Common.HttpHelper.Login(Common.CurrentUser.Cookie, this.txtUserName.Text.Trim(), this.txtPassword.Text.Trim());
                    if (result.IndexOf(Properties.Resources.LoginSuccess) > 0)
                    {//如果登陆成功
                        this.DialogResult = DialogResult.Yes;
                    }
                    else if (result.IndexOf(Properties.Resources.LoginFail) > 0)
                    {//如果登陆失败
                        King.DevWinForm.KingMessageBox.ShowMessage("账号或密码错误!");
                        this.DialogResult = DialogResult.No;
                    }
                    else
                    {
                        King.DevWinForm.KingMessageBox.ShowWarning("返回的数据格式不正确,请重新跟踪系统看返回数据格式是否发生了变化");
                    }
                }
                catch (Exception ex)
                {
                    King.DevWinForm.KingMessageBox.ShowError(ex.Message);
                }
      

  3.   

    不是很明白楼主的意思。你的验证是在B窗口执行的吗?如果是在B窗口执行,点击“OK”按钮关不关闭窗口不是自己说了算吗?
    在模式化窗口中,只要给this.DialogResult赋值,不论赋的是什么值,都会触发关闭窗口命令。不想关闭窗口,不赋值不就是了吗?在B窗口中private void btnOK_Click(object sender, EventArgs e)
            {
                if (验证通过)
                {
                    this.DialogResult = System.Windows.Forms.DialogResult.OK;
                    //this.Close();  //这个指令不写也会触发
                }
            }不给this.DialogResult 赋值,不会关闭B窗口的
      

  4.   

    在B窗口的formclosing事件判断检查输入是不是正确就可以了。正确就关闭,不正确就取消关闭啊。
      

  5.   

    点击 ok是不会close弹出窗的吧
      

  6.   

    注意子窗口的AcceptButton和CancelButton属性,如果有则去掉,我吃过大亏啊。