none
window调用close后是处于什么状态 RRS feed

  • 问题

  • 我有一个主窗口,窗口中定义一个window变量

    private AddTaskPreWindow ToDTabWin;

    AddTaskPreWindow是自定义的窗口,主窗口有个一个按钮,当我点击按钮是进行判断

                if(ToDTabWin == null )
                {
                    ToDTabWin = new AddTaskPreWindow();
                    ToDTabWin.Show();
                }
                else
                {
                    ToDTabWin.Show();
                    ToDTabWin.PreAddToTaskList(filepath);
                }

    现在遇到一个问题,当我将ToDTabWin关闭后再点击按钮会出错

    错误信息如下

    Additional information: Cannot set Visibility or call Show, ShowDialog, or WindowInteropHelper.EnsureHandle after a Window has closed.

    怎么解决这个问题使得关闭窗口后还可以重新new一个窗口出来


    2012年5月6日 12:52

答案

  • 窗体被Close后,句柄会被释放,就不能再次Show或者ShowDialog了。除非你重新建立一个窗体对象。

    或者我建议你不用Close。 而是将窗体隐藏即可。


    Bob Bao [MSFT]
    MSDN Community Support | Feedback to us

    2012年5月7日 3:09
    版主
  • 那么你可以在ToDTabWin.Closed事件中 设置一个标记来说明这个 ToDTabWin 已经被关闭了,然后你只需要判断这个标记来决定是否重新新建一个对象.

    Bob Bao [MSFT]
    MSDN Community Support | Feedback to us

    2012年5月7日 6:23
    版主

全部回复