最近在做一个数据监测的项目,需求是在主界面实现刷新的同时,可以同步刷新正在打开的曲线图界面,首次执行的时候没有问题,曲线也能实时刷新,但是当我关闭曲线图窗口重新打开时就会报错“关闭 Window 之后,无法设置 Visibility,也无法调用 Show、ShowDialogor 或 WindowInteropHelper.EnsureHandle。”,因为我是在主界面创建的曲线图实例,所以不能在打开之前新建窗口实例,否则就不能实现同步刷新了,我查了资料说重写窗口的Close方法,让窗口在关闭的时候Hide而不是close,代码如下:
- C# code
/// <summary> /// 重写Close /// </summary> /// <param name="e"></param> protected override void OnClosed(EventArgs e) { this.Hide(); }
但是我重写之后,问题同样存在,请高手指点..
------解决方案--------------------------------------------------------
- C# code
/// <summary> /// 重写Close /// </summary> /// <param name="e"></param> protected override void OnClosing(EventArgs e)//注意事件的名字,在关闭时,不是关闭后 { this.Hide(); e.Cancel = true; }