在做WPF项目时,点击一个按钮弹出一个自定义的窗体,然后点击X关闭该窗体,然后再点击按钮想弹出该窗体时,报错:关闭 Window 之后,无法设置 Visibility,也无法调用 Show、ShowDialogor 或 WindowInteropHelper.EnsureHandle。
这里写图片描述

解决办法:

需要重写它的OnClosing()方法。

protected override void OnClosing(CancelEventArgs e)
    e.Cancel = true;  // cancels the window close    
    this.Hide();      // Programmatically hides the window
                    【C#】关闭 Window 之后,无法设置 Visibility,也无法调用 Show、ShowDialogor 或 WindowInteropHelper.EnsureHandle
                    重写它的OnClosing()
				
前情提要:最近公司同事在做WPF的多个客户端的项目,客户端之间的通信是通过服务器转发实现的。 出现的问题:1.客户端A点击按钮a,A显示界面P正常,客户端B显示界面P正常;但是界面P和P1切换后会出现很多界面; 2.修改之后,又报错:关闭 Window之后无法设置 Visibility,也无法调用 Show、ShowDialogor等等 当时看了代码第一反应是实例有问题,close()方法不会销毁你的实例,导致每次点击都会增加一个实例。看到这里自然而然就想...
参考网址: 1、WPF Tips: Window.ShowDialog()方法:Cannot set Visibility or call Show, ShowDialog, or WindowInteropHelp http://blog.csdn.net/yapingxin/article/details/12209205 2、同样的疑问,在StackOverflow上的讨论如...
在做WPF项目时,点击一个按钮弹出一个自定义的窗体,然后点击X关闭该窗体,然后再点击按钮想弹出该窗体时,报错:关闭 Window 之后无法设置 Visibility,也无法调用 Show、ShowDialogor 或 WindowInteropHelper.EnsureHandle。 解决办法: 需要重写它的OnClosing()方法。 protected override vo...
C#编程中的报错解决System.InvalidOperationException问题场景问题原因解决方案方案一,打破规则方案二,利用委托(Delegate) 在C# Windows GUI编程中,从某个子线程去访问设计器中的某个控件,例如将某个按钮禁用。这样就会触发该异常: System.InvalidOperationException:"线程间操作无效: 从不是创建控件"btn_exp"的线程访问它。" 在C# Windows GUI编程中有一个规则,就是只能通过创建控件的线程
/// </summary> /// <param name="e"></param> protected override void OnClosing(System.ComponentModel.CancelEventArgs e)
有些时候我们需要根据某些条件来控制Web页面中的HTML元素显示还是隐藏,可以通过display或visibility来实现。通过下面的例子了解display和visibility的区别,简单的例子代码如下: 复制代码代码如下: <html> <head> <title>HTML元素的显示与隐藏控制</title> [removed] function showAndHidden1(){ var div1=document.getElementById(“div1”); var div2=document.getElementById(“div2”
【C#】关闭 Window 之后,无法设置 Visibility,也无法调用 Show、ShowDialogor 或 WindowInteropHelper.EnsureHandle Armin君: 有用,谢谢 【WPF】获取下拉列表(ComboBox)的选项(ComboBoxItem)的内容 YNDLCN: 为什么item为空 【WPF】获取下拉列表(ComboBox)的选项(ComboBoxItem)的内容 YNDLCN: