Windows Forms 进阶_ 写一个定制控件.pptVIP

  1. 1、本文档共41页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Windows Forms 进阶_ 写一个定制控件

DEV414: Windows Forms 进阶: 写一个定制控件 沈嵘 顾问咨询部 Microsoft (China) 内容 Windows Forms Framework Windows Forms GDI+ 编写一个例子控件-(AlarmClock) 描绘控件 添加属性 (Properties) 添加事件(Events) 使用该控件 添加Collection属性-(AlarmTimesCollection) 快速通过-(类型转换、属性编辑器) 总结 Windows Forms的优势 WinForm 具有CLR的开发优势:GC, 语言无关, 底层操作, 安全框架 在Windows Forms, WebForms, System.Net等类库都具有相同的设计模式 丰富的,可扩展的设计时支持 简洁! 没有一大堆的头文件, IDL, libs, obj, 等等. Web 感知的, data 感知的 真正的,丰富的运行时类型信息 Windows Forms 控件的设计原则 控件是非模式的 使用已有的设计模式 控件的功能是显而易见的 用一种方法达到目的 用CLS类型 – 控件的功能可以被任何CLS 语言访问 Windows Forms 继承关系 Component And IComponent Component 对IComponent接口进行了标准的实现 IComponent包含一个Site属性,Site是Component和Container之间的通信接口 提供一个Events属性-包含所有连接到该组件的事件处理者 Control – Windows Forms的核心 Control 包含窗口句柄(HWND wrapper) 处理主要的一些窗口消息(WM_*) 为用户的输入,描绘和布局提供一些事件 包装 ActiveX 负责句柄的创建和重建 通过Handle属性暴露HWND 如果 HWND 不存在,在访问该属性时会立刻建立一个 如果重载WndProc()方法,那么可以处理任何窗口消息 访问底层系统 可以从Graphics得到HDC 重载protected virtual WndProc 方法 访问底层系统 WndProc的例子: private const int WM_COMPACTING = 0x041; protected override void WndProc(ref Message m) { case (m.msg) { case WM_COMPACTING: OnCompacting(); break; } base.WndProc(m); } ScrollableControl And ContainerControl ScrollableControl Control支持自动滚动(AutoScroll, VScroll, HScroll) AutoScrollMargin,AutoScrollMinSize 属性定义滚动的范围等信息 ContainerControl 实现一个Control的容器 管理控件的焦点(Tab)-本身不接受焦点 实现所有ScrollableControl的功能 支持布局(Dock, Anchor) Demo Root Designable Types: UserControl And Form UserControl 组合控件的基类型(ComboBox) 自定义控件的基类型 Form Windows Forms顶层控件 提供一些属性来操作System menu, minimize/maximize按钮,菜单等 GDI+ 简介 全新的完全面向对象的2-D图形系统 GDI+ 对象能够和GDI 对象互操作 无状态 – drawing 对象在每次操作时都必须出现 添加了很多新特性: 抗锯齿, 纹理 渐进填充, 文本特效, alpha 混合… 使用GDI+ Drawing类的基类是 System.Drawing.Graphics 可以从Control.Paint事件的参数获得,或者用 Control.CreateGraphics建立 和HDC类似 对象在结束使用时自动清理(GC),但是最好手工调用Dispose。(Win9x 平台必须手工处理!) 有很多系统标准对象例如:SystemColors, SystemBrushes, SystemIcons, SystemPens ControlPaint 封装了一些画Control的公共功能 简单的 GDI+ 操作 写一段文本 Graphics g = someCtl.CreateGraphics(); g.DrawString(“Hello World!”, someCtl.Font, S

文档评论(0)

ligennv1314 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档