博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Winform窗口里的嵌入WPF的UserControl,关闭Winform父窗体的方法
阅读量:6838 次
发布时间:2019-06-26

本文共 871 字,大约阅读时间需要 2 分钟。

可以在form_load事件里把this传给UserControl,然后在usercontrol里调用form的各种方法,不过这种做法不太好,耦合性较高。标准做法是用事件传递

UserControl里加如下代码: 

public delegate void FormCloseEventHandler(object sender, EventArgs e);
public event FormCloseEventHandler FormClose;
private void button_quit_Click(object sender, EventArgs e)
{
if (this.FormClose != null)
{
FormClose(this, new EventArgs());
}
}

 


在Form里添加如下代码: 
form_load事件里:

this.userControl.FormClose += new UserControl.FormCloseEventHandler(this.userControl_FormClose); //不明白为什么是用类方法而非对象方法?

然后用这个方法不好使,还是出现我之前的鬼影问题

        private void userControl_FormClose(object sender, EventArgs e)
{
this.Close();
}

改成用这个方法, 把elementHost1这个对象给销毁掉,这样似乎就好了, 鬼影的问题是在用了第三方的WpfToolkit之中的DataGrid后出现的,如果用4.0里面的DataGrid就没有问题。 虽然麻烦点,但是也算是个收获。

  private void UserControl_FormClose(object sender, EventArgs e)        {            this.elementHost1.Dispose();            this.Close();        }

转载地址:http://yowul.baihongyu.com/

你可能感兴趣的文章
CMS之图片管理(3)
查看>>
linux下jdk/maven/tomcat
查看>>
Linux下vsftpd服务器
查看>>
Java 抽象类和接口
查看>>
分支1-CentOS6.5下 正/反向域名解析之yum安装/编译安装 的教程
查看>>
Advanced Auto Layout:Programmatically Creating Constraints
查看>>
枚举类型的定义与使用
查看>>
nginx解析php
查看>>
KVM虚拟机克隆
查看>>
PXE无人值守安装
查看>>
linux 系统相关服务解释
查看>>
目标检测-基于Pytorch实现Yolov3(1)- 搭建模型
查看>>
java实验报告(实验一)
查看>>
哈哈,我又回来了
查看>>
【转载】Java JVM 运行机制及基本原理
查看>>
python-冒泡排序
查看>>
无缝滚动与切换
查看>>
sql insert and update
查看>>
CF401D Roman and Numbers
查看>>
Google C++命名规范
查看>>