我自己写了一个form,OK按钮设置为返回dialogresult.ok,但是不想点这个按钮之后关闭窗口,想还是通过在form对应的代码中用this.close()关闭窗口,请问这个应该怎么设置呢?

解决方案 »

  1.   

    把这个if(xxx.dialogresult.ok)
    {
     xxxxx;
    }
    else
    {
     e.cancel = true;
    }
    放到form_closing下然后按钮事件
    this.close(); 窗体关闭之前会调用form_closing 也就会出现提示框了.
      

  2.   

    我是在form里面有一些textbox,在点击OK按钮的时候需要判断textbox的数据是否符合条件,不符合的话会弹出messagebox,提示重新输入,确认messagebox之后原来的form保持原状,只有在textbox的数据都符合条件时候form才关闭。
      

  3.   

    在Form1_FormClosing事件里写如下代码if (MessageBox.Show("您确认要退出吗?", "退出系统", MessageBoxButtons.OKCancel) == DialogResult.OK)
                {
                    this.Dispose();
                   // Application.Exit();
                }
                else
                    e.Cancel = true;如果要button控制,直接在button事件里写this.Close()
      

  4.   

    你写一个方法返回bool类型来判断TextBox
    例如:
    private Boolean AllCheckedOk()
    {
      if(textbox1.text == "1" and textbox2.text == "2")
      {
        return true;
      }
      else
      {
        return false;
      }
    }然后你 if(CheckAllOk() == true && dialog.result == ok)
          {
             xxxxxxx
          }
      

  5.   

    你写一个方法CheckAll 判断TextBox是否通过验证 返回Boolean类型
    然后:(提供思路,代码随意写的)
    if(dialog.result == ok && CheckAll() == true)
    {
      xxxxx.
    }
    else
    {
       e.cancel = true;
    }
      

  6.   

    嗯嗯,我明白你的意思,但是我怎么在form1的form_closing消息响应里面判断是摁下OK引发的退出还是cancel引发的退出呢?
      

  7.   

    楼主,你其它什么都不用做,你只需要做的一件事就是确保 Form 的 AcceptButton 不等于你那个按钮