组件开发.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
组件开发 Zhanghz 2006.12.24 本章概要 日常开发中,经常需要创建一些可以重用的控件。本章介绍如何开发组件和Windows窗体控件的技术,主要介绍组件和控件的创建、在组件中使用事件、扩展已有组件、从Control类既成创建新控件和为控件添加设计时的功能等。 纲要 基本概念 在组件中使用事件 开发Windows窗体控件 基本概念 组件的概念 实现了接口System.ComponentModel.IComponent的类,或者是从System.ComponentModel.Component类以及其他实现了IComponent接口的类得到的派生类。 可以被重用,也可以和其他对象进行交互。 也可以使用结构来实现组件,但是结构不能用来派生新类,通常使用类来实现组件。 组件的使用 通常都要包含在一个命名空间中,在创建组件时需要使用Namespace语句为组件声明相应的命名空间。 组件实质是类,可以实现继承的方法和属性,也可以添加自己的方法、属性和事件等 实际编程中,通常使用属性来代替公共字段。因为在VS.NET的可视化设计器中会显示组件的属性,而不显示组件字段。 使用属性可以在访问时进行验证或执行一些复杂的操作,要比字段来得灵活。 开发组件要注意组件的创建和销毁。 构造函数和析构函数 析构函数的调用时间不确定,可能会造成组件使用完成与析构函数调用之间有延迟,因此,要同时在组件中实现Dispose方法,以便通过它来明确释放组件占用的资源。 组件示例 using System; … Namespace MyNamespace { //定义组件类 public class MyComponent:System.ComponentModel.Component { private int m_myProperty; //声明字段 public MyComponent() {…} public int Myproperty //声明属性 { get { … } set { … } } protected override void Dispose( bool disposing ) { if(disposing) { … } base.Dispose(disposing); //必须调用基类的Dispose方法 //释放资源 … } } } Component类的Dispose方法 public void Dispose() Protected virtual Dispose( bool disposing ) 在组件直接或间接从Component类派生时,使用自定义方法覆盖基类的带参Dispose方法即可,但一定要在方法中实现调用基类的Dispose方法。 如果通过IDisposable接口来创建组件,需要自定义Dispose方法。 容器Container 实现了System.ComponentModel.IContainer接口的类,或者是从实现了这个接口的类得到的派生类。 一个容器可以包含一个或多个组件,这些组件称为容器的子组件。 站点Site 实现了System.ComponentModel.ISite接口的类。或是由实现了这个接口的类得到的派生类。 由容器提供,以管理它所包含的子站点并与子站点通信。 子组件通过站点与容器进行交互。 容器和站点通常是作为整体来实现。 控件 具有用户界面的组件。 Windows窗体控件 从现有控件类派生的控件 从UserControl类派生的控件 从Control类派生的控件 组件通常以.DLL形式文件打包成程序集。其中包含了使用组件需要的所有信息,因此不需要再使用其他文件。 使用模板创建组件,其自动配置项目属性可以生成DLL文件。 在组件中使用事件 触发事件的对象称作发送者,捕获并响应事件的对象称为接收者。事件是组件同客户进行通信的有效手段。 委托 事件通信中,事件的发送者不知道其接收者,我们需要一个媒介来连接发送者和接收者。这个媒介就是委托。 委托是一个类,用于绑定和引用方法。它具有签名,只能绑定匹配参数格式一致的方法。 public delegate void AlarmEventHandler( object sender, AlarmEventArgs e ); .NET框架中事件代理具有两个参数:事件源,触发事件的对象;事件参数,包含与事件相关的数据。 一般情况下,事件通常不产生数据,可以直接使用.NET框架提供的System.EventHandler事件委托;当事件要产生一些事件数据时,就需要使用自定义的事件委托。 在类中触发事件 要在类中触发事件,前提条件

文档评论(0)

海川电子书城 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档