Winform窗口里的嵌入WPF的UserControl,关闭Winform父窗体的方法

可以在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后出现的,如果用.NET4.0里面的DataGrid就没有问题。 虽然麻烦点,但是也算是个收获。

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏张善友的专栏

在 ASP.NET 2.0 中,Global.asax 文件没有后置代码,如何将Globa.asax中的页面移到代码文件中

学海无涯在asp.net页面上得到Castle容器的实例 中问如何解决这个问题,可以如下设定来完成这个功能 <%@ Application Inherits="...

18410
来自专栏宝哥技术杂谈

一桩由ssl证书过期引起的血案

公司全部站点升级了https,升级过程由同事们完成,我没有过问细节。ssl证书使用的是阿里云 的【Symantec免费版 SSL】一年免费。

1265
来自专栏Java成神之路

Java企业微信开发_08_素材管理之下载微信临时素材到本地服务器

请求地址:https://qyapi.weixin.qq.com/cgi-bin/media/get?access_token=ACCESS_TOKEN&med...

632
来自专栏小灰灰

Batik渲染png图片异常的bug修复

Batik渲染png图片异常的bug修复 batik是apache的一个开源项目,可以实现svg的渲染,后端借助它可以比较简单的实现图片渲染,当然和java一贯...

1739
来自专栏magicsoar

基于windowsphone7的控制ppt播放 第一部分 服务器端

最近突然想起了一个学长的一个利用手机控制ppt播放的一个创意,并想将其在windows phone7上实现一下。 经过几天的努力已经可以控制ppt的播放,暂停,...

1907
来自专栏.Net移动开发

.Net语言 APP开发平台——Smobiler学习日志:如何仿微信朋友圈的消息样式?

501
来自专栏知识分享

9-51单片机ESP8266学习-AT指令(测试TCP服务器--51单片机程序配置8266,C#TCP客户端发信息给单片机控制小灯的亮灭)

http://www.cnblogs.com/yangfengwu/p/8780182.html 自己都是现做现写,如果想知道最终实现的功能,请看最后 先把源...

3714
来自专栏Java成神之路

Java企业微信开发_04_消息推送之发送消息(主动)

(1)流程不同:发送消息是第三方服务器主动通知微信服务器向用户发消息。而被动回复消息是 用户发送消息之后,微信服务器将消息传递给 第三方服务器,第三方服务器接收...

885
来自专栏wblearn

我的Web开发实战总结(二)

这篇是继我的Web开发实战总结(一)的第二篇文章,在此篇里,我主要总结一下如何把Web页面上的报表或列表数据转换成pdf文件下载到本地。其中涉及到的知识我也会提...

441
来自专栏菩提树下的杨过

Silverlight数据绑定/IValueConverter学习笔记

先回忆一下aspx中的处理: 在aspx中,可以直接在后台定义一个变量,然后前台就可以用<%=xxx%>来将其"绑定"html控件上,比如下面这样,实在是很方便...

2347

扫描关注云+社区