WinForm控件开发总结.docx

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
WinForm控件开发总结.docx

 HYPERLINK /guanjinke/archive/2006/12/04/582084.html WinForm控件开发总结(一)------开篇 ????? 我本人不是专业的控件开发人员,只是在平常的工作中,需要自己开发一些控件。在自己开发WinForm控件的时候,没有太多可以借鉴的资料,只能盯着MSDN使劲看,还好总算有些收获。现在我会把这些经验陆陆续续的总结出来,写成一系列方章,希望对看到的朋友有所帮助。今天我来开个头。 ??????其实开发WinForm控件并不是很复杂, HYPERLINK /guanjinke/archive/2006/12/04/ .NET为我们提供了丰富的底层支持。如果你有MFC或者API图形界面的开发经验,那么学会WinForm控件可能只需要很短的时间就够了。 ??????自己开发的WinForm控件通常有三种类型:复合控件(Composite Controls),扩展控件(Extended Controls),自定义控件(Custom Controls)。??? ??????复合控件:将现有的各种控件组合起来,形成一个新的控件,将集中控件的功能集中起来。 ??????扩展控件:在现有控件的控件的基础上派生出一个新的控件,为原有控件增加新的功能或者修改原有控件的控能。 ??????自定义控件:直接从System.Windows.Forms.Control类派生出来。Control类提供控件所需要的所有基本功能,包括键盘和鼠标的事件处理。自定义控件是最灵活最强大的方法,但是对开发者的要求也比较高,你必须为Control类的OnPaint事件写代码,你也可以重写Control类的WndProc方法,处理更底层的Windows消息,所以你应该了解GDI+和Windows API。???? ??????本系列文章主要介绍自定义控件的开发方法。 ??????控件(可视化的)的基本特征: ??????1.?????? 可视化。 ??????2.?????? 可以与用户进行交互,比如通过键盘和鼠标。 ??????3.?????? 暴露出一组属性和方法供开发人员使用。 ??????4.?????? 暴露出一组事件供开发人员使用。 ??????5.?????? 控件属性的可持久化。 ??????6.?????? 可发布和可重用。 ??????这些特征是我自己总结出来,不一定准确,或者还有遗漏,但是基本上概括了控件的主要方面。 ??????接下来我们做一个简单的控件来增强一下感性认识。首先启动VS2005创建一个ClassLibrary工程,命名为CustomControlSample,VS会自动为我们创建一个solution与这个工程同名,然后删掉自动生成的Class1.cs文件,最后在Solution explorer里右键点击CustomControlSample工程选择Add-Classes…添加一个新类,将文件的名称命名为FirstControl。下边是代码: ?????? using?System; using?System.Collections.Generic; using?System.Text; using?System.Windows.Forms; using?System.ComponentModel; using?System.Drawing; namespace?CustomControlSample { ????public?class?FirstControl?:?Control ????{ ????????public?FirstControl() ????????{ ????????} ????????//?ContentAlignment?is?an?enumeration?defined?in?the?System.Drawing ????????//?namespace?that?specifies?the?alignment?of?content?on?a?drawing? ????????//?surface. ????????private?ContentAlignment?alignmentValue?=?ContentAlignment.MiddleLeft; ????????[ ????????Category(Alignment), ????????Description(Specifies?the?alignment?of?text.) ????????] ????????public?ContentAlignment?TextAlignment ????????{ ????????????get ???????????

文档评论(0)

dmz158 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档