首页
学习
活动
专区
圈层
工具
发布

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

可以在form_load事件里把this传给UserControl,然后在usercontrol里调用form的各种方法,不过这种做法不太好,耦合性较高。...标准做法是用事件传递 UserControl里加如下代码: public delegate void FormCloseEventHandler(object sender, EventArgs e...+= new UserControl.FormCloseEventHandler(this.userControl_FormClose); //不明白为什么是用类方法而非对象方法?...然后用这个方法不好使,还是出现我之前的鬼影问题 private void userControl_FormClose(object sender, EventArgs e) { this.Close...(); } 改成用这个方法, 把elementHost1这个对象给销毁掉,这样似乎就好了, 鬼影的问题是在用了第三方的WpfToolkit之中的DataGrid后出现的,如果用.NET4.0里面的DataGrid

3.5K50
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    winform 窗体实现增删改查(CRUD)窗体基类模式

    由于BaseForm一般需要在大多数的窗体中,而新增编辑数据窗体一般较为特殊一点,可以再增加一个基类BaseEditForm,用来做新增编辑窗体的基类,该基类继承自BaseForm类,工程代码如下所示。...其中运行例子的效果如下所示: ? ?  编辑以及新增我们整合在一个窗体中,先看看该基类的设计视图,我们在其中添加了3个按钮(常用的添加、保存、关闭按钮)。 ?...窗体的代码我大类采用了可重载的虚函数,留给子类窗体进行实现不同的处理操作,如窗体加载显示操作、显示数据到控件的操作、保存、新增等函数都是需要实现的,而调用逻辑以及一些通用的处理,则在基类BaseEditForm...,窗体的控件数据清空在基类窗体中通过遍历实现了通用的数据清空操作,该部分代码引用了“潇湘隐者的博客(http://www.cnblogs.com/kerrycode/archive/2010/02/05...另外,基类窗体还实现了Tab键的转换,这个思路来源于即日嘎拉的代码,但由于是基类实现,有些不同,他的放在每个具体的子类中,因此通用性有些限制。

    2.9K20

    (一)c#Winform自定义控件-基类控件

    如果觉得写的还行,请点个 star 支持一下吧 目录 https://www.cnblogs.com/bfyx/p/11364884.html 准备工作 自定义的分为控件和窗体2种类型,分别都有一个基类...,基类实现公共的大部分工作 开始 首先从基类控件开始吧, 主要实现功能: 圆角 边框 填充颜色 添加一个用户控件,命名为UCControlBase,写入相关属性,包含圆角角度,边框颜色,边框宽度,填充颜色...//左下角 50 graphicsPath.CloseFigure(); 51 return graphicsPath; 52 } 至此基类控件就完成了...System.Design", typeof(System.ComponentModel.Design.IDesigner))] 19 public partial class UCControlBase : UserControl...最后的话 如果你喜欢的话,请到 https://gitee.com/kwwwvagaa/net_winform_custom_control 点个星星吧

    1.7K20

    python的抽象基类

    与jvm上的语言不一样,python的语言没有interface关键字,而且除了抽象基类,每个类都有相应的接口:类实现或继承的公开属性(方法或数据类型) 在定义里,受保护的属性和私有属性不在接口中:即便...“鸭子类型”:忽略对象的真正类型,转而关注对象有没有实现所需的方法,签名和语义。 继承抽象基类很简单,只要实现python里的特殊方法__len__之类的,这样python就会自动识别。...抽象基类的继承大多都是在collections模块,现在打开这个模块的文档看看。...MappingView,Set __contains__,__iter__ ValuesView MappingView __contains__,__iter__ 从官方文档中可以看出,一共有16个基类...,分为三层: --顶层是Iterable,Container,Sized,Callable,Hashable: 其中Iterable,Container,Sized是各个集合该继承的三个抽象基类,或者至少实现兼容的协议

    1.3K10

    基于DotNet构件技术的企业级敏捷软件开发平台 - AgileEAS.NET平台开发指南 - 实现插件

    应用提供了一系统的基础实现,开发人员选择在合适的基类上继承并重写与业务相关的信息,下面是一个简单例子: UserControl2public partial class UserControl2 : EAS.Windows.UI.Controls.ExplorerControl...,AgileEAS.NET提供了如下的默认实现: EAS.Windows.UI.Forms.ModuleForm          WinForm模块插件的基类实现(独立的运行窗体),开发人员重写ModuleName...EAS.Windows.UI.Controls.ModuleControl          WinForm模块插件的基类实现(内嵌入运行容器的业务控件),开发人员重写ModuleName、Description...EAS.Windows.UI.Controls.ExplorerControl          WinForm模块插件的基类实现(内嵌入运行容器的业务控件),相比较EAS.Windows.UI.Controls.ModuleControl...EAS.Web.UI.ModulePage          WebForm模块插件的基类实现(独立的运行面),开发人员重写ModuleName、Description、Guid属性即可,WebForm

    1.5K80

    iOS_实例、类、元类、基类之间的关系+结构体

    文章目录 isa指针 superClass 对象的结构体 类的结构体 分类的结构体 isa指针 OC中任何类的定义都是对象,任何对象都有isa指针。isa是一个Class类型的指针。...实例的isa指针,指向类; 类的isa指针,指向元类; 元类的isa指针,指向根元类; 父元类的isa指针,也指向根元类!! 根元类的isa指针,指向它自己!!...superClass 类的superClass指向父类; 父类的superClass指向根类; 根类的superClass指向nil; 元类的superClass指向父元类; 父元类的superClass...指向根元类; 根元类的superClass指向根类!!!!...而此时类的内存分布已经确定 (若此时再修改分布情况,对编程性语言是灾难,是不允许的) 发送消息的查找过程?

    1.3K10

    把WPF Dialog转成WinForm Dialog需要注意的问题

    解决这个问题的方法就是把原有的WPF Window转成UserControl,然后显示在WinForm窗体上,通过WPFControlHost这个强悍的控件。...新的Dialog看起来总是很不爽,如下图示,所有的字体都发生了变化,导致原来调试好的布局乱掉了 推测可能跟UserControl从WinForm继承了不同的Font导致的这个问题。...WPF下的控件默认字体和WinForm是不同的,在英文机器上,这个默认字体是(“Segoe UI, 12f”)。...因此我们需要修正Host在WinForm上的WPF UserControl的Font。 这个过程就比较简单了。...使用DynamicResource绑定系统的SystemFonts的资源Key就可以了,需要添加的XAML如下: UserControl x:Class="WPFDialog.UserControl1

    2K70

    Python中的协议 、鸭子类型 、 抽象基类 、混入类

    三、抽象基类 抽象基类就是定义各种方法而不做具体实现的类,任何继承自抽象基类的类必须实现这些方法,否则无法实例化。 那么抽象基类这样实现的目的是什么呢? 假设我们在写一个关于动物的代码。...概括一下抽象基类的作用:定义一些共同事物的规则和行为。...Dog和Bird在实例化之后调用相同的方法,但是却有不同的输出,这就是最简单的抽象基类的用法。...注意,自己定义的抽象基类要继承 abc.ABC(abc.ABC 是 Python 3.4 新增的类,python2的语法不是这样的)。...print(issubclass(Cat, Animal)) 输出: True 这种通过注册和抽象基类关联起来的类叫做虚拟子类,虚拟子类不会继承注册的抽象基类,而且任何时候都不会检查它是否符合抽象基类的接口

    2.6K20
    领券