.net里面如果设置一个按钮的DialogResult属性则,点击这个按钮后窗口会自动关闭。
如何在按钮点击响应里取消这个关闭操作?

解决方案 »

  1.   

    重载关闭事件,还得设置一个标志变量        private bool OkClose = true;
            private void btnOk_Click(object sender, EventArgs e)
            {
                if (Length == 0)
                {
                    OkClose = false;
                    return;
                }
                OkClose = true;
            }        private void btnCancel_Click(object sender, EventArgs e)
            {
                OkClose = true;
            }
            private void frmNewBot_FormClosing(object sender, FormClosingEventArgs e)
            {
                if (!OkClose)
                {
                    OkClose = true;
                    e.Cancel = true;
                }
            }这样比较烦啊,有没有简单的方法,在btnOk_Click中取消关闭时间
      

  2.   

    问题在这里?
    一个按钮的响应事件中最复杂的应该是业务逻辑的处理,而不是关闭窗口和设置DialogResult属性。
    对于你说的情况,如果说 OK按钮没有业务逻辑(不用编写点击事件),那么你点击即不处理业务逻辑,又不关闭窗口,你点击的意义何在?
    如果你需要处理一定的业务逻辑就意味着你需要响应事件,定入至少一行代码,那么多一行:
    this.DialogResult = ...
    又有何妨????
    对开发人员来说如果只要选择和配置就能完成工作,那么这就不是开发人员了。
      

  3.   

    汗,这么简单的方法我怎么没想到呢?this.DialogResult = ... 
      

  4.   

    以前C++的一个return搞定,用惯了,呵呵