.NET Windows窗体 – 拦截Close X事件

前端之家收集整理的这篇文章主要介绍了.NET Windows窗体 – 拦截Close X事件前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
这一定是个愚蠢的问题,但我无法弄清楚.我也不能使用设计器,因为在我之前的编码器设法将GUI和逻辑集于一身,所以现在它很困惑.我必须按照旧学校的方式去做.

我有一个表格,可以通过3种方式关闭关闭按钮,文件/关闭菜单和X图标.我希望他们都做同样的事情.拦截按钮和菜单事件很容易.实际上,两者都连接到onCloseConfig方法.顺便问一下,这个方法有更好的名称吗?

private void onCloseConfig(object sender,System.EventArgs e)
{
    if (! m_configControl.Modified)
    {
        Application.Exit(); // Or should it be this.Close();
    }
    ....
    // Else present a dialog,ask if they want to save.
}

所以,拦截X我试过:this.FormClosing = new FormClosingEventHandler(this.onCloseConfig);我相信这是导致无限循环的原因.我不希望这样:) FormClosed是另一种选择,但似乎为时已晚.我只想拦截点击X的事实,而不是表格正在关闭的事实.

我认为你确实希望关闭表单,你可能缺少的是检查关闭的原因,只有当它来自用户时才取消它.
private void my_FormClosing(object sender,FormClosingEventArgs e)
{
  if (e.CloseReason == CloseReason.UserClosing)
  {
    e.Cancel = true; //I'm sorry Dave,I'm afraid I can't do that.
  }
}

隐藏’X’设置Form.ControlBox = false,但这也将消除min / max.

原文链接:https://www.f2er.com/windows/364652.html

猜你在找的Windows相关文章