none
wpf 如何判断窗口被用户关闭了 RRS feed

  • 问题

  •             Test t=new Test();
                t.ShowDialog();
                t.ShowDialog();

    如上面代码,当第二次调用时将会报如下错误

    关闭 Window 之后,无法设置 Visibility,也无法调用 Show、ShowDialogor 或 WindowInteropHelper.EnsureHandle。

    在第二次调用之前,应该怎么判断窗体是不是被用户点击那个叉叉关掉了?

    2014年11月3日 3:41

全部回复

  • 您好

    按照您的描述,比較好的做法可能是在 Test 窗體的 Closing event 中撰寫代碼,使用者按 X 關閉按鈕時,改為隱藏

    private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e)
    {
        e.Cancel = true;
        this.Visibility = Visibility.Hidden;
    }


    歡迎參觀我的Blog【菜鳥自救會】

    2014年11月3日 5:36
  • 首先非常感谢

    但是这个不是我想要的答案,虽然这么做不会报错,也能够实现,

    但是,我想要知道的是如何判断窗体是不是已经关闭了,关闭的时候都做了什么,为什么我再次show的时候会出现那样的错误.

    很抱歉,可能是我之前描述不清楚,让你误解了.

    2014年11月5日 1:07
  • //创建全局对象

    Test t=new Test()

      

    privatevoid Button_Click(object sender, RoutedEventArgs e) { t.ShowDialog();

    t.ShowDialog();

    }



    Final Fantasy

    • 已建议为答案 Neoo 2014年11月11日 13:24
    • 取消建议作为答案 Neoo 2014年11月11日 13:27
    2014年11月11日 10:01
  • 这个应该不对呀,亲
    2014年11月12日 2:43
  • 第二次ShowDialog 遇到错误码?

    Final Fantasy

    2014年11月12日 4:47
  • 是滴,主要就是要解决这个问题呢
    2014年11月14日 2:36
  • 理论上你用  ShowDialog

    用户不关掉是没办法对你之前窗体操作的额...


    My Blog:http://sun8134.cnblogs.com

    2015年1月7日 0:46