如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
CEControlslibraryDevelopspec
一.C#自定义控件开发概述
基控件类
Control类是Windows窗体控件的基类。它提供了在Windows窗体应用程序中进行可视显示所需的基础结构。
Control类执行下列任务:
1)公开窗口句柄。
2)管理消息路由。
3)提供鼠标和键盘事件,以及许多其他用户界面事件。
4)提供高级布局功能。
5)包含特定于可视显示的许多属性,如ForeColor、BackColor、Height和Width。
6)为Windows窗体控件充当MicrosoftActiveX控件提供必需的安全和线程支持。
由于基类提供了很多基础结构,使得开发自己的Windows窗体控件变得相对简单。
控件的种类及适用情况
Windows窗体支持三种用户定义的控件:复合、扩展和自定义。
1)复合控件是封装在公共容器内的Windows窗体控件的集合。
在下列情况下,从UserControl类继承:
要将若干个Windows窗体控件的功能合成一个可重新使用的单元。
2)扩展控件是从任何现有的Windows窗体控件继承。
处于下列情况时继承Windows窗体控件:
1.大多数所需的功能已经与现有的Windows窗体控件相同。
2.不需要自定义图形用户界面,或者想为现有控件设计一个新的图形用户界面。
3)自定义控件是通过从Control继承头开始创建一个控件。Control类提供控件所需的所有基本功能(包括鼠标和键盘处理事件),但不提供控件特定的功能或图形界面。
若要实现自定义控件,必须编写该控件的OnPaint事件的代码,以及所需的任何功能特定的代码。还可以重写WndProc方法并直接处理窗口消息。
在下列情况下,从Control类继承:
1.想要提供控件的自定义图形化表示形式。
2.需要实现无法从标准控件获得的自定义功能。
二.资源管理
图形对象非常昂贵,它们占用很多系统资源,应该仅在需要时才创建图形资源,并在使用完毕后立即将其释放.(Graphics,Brush,Pen,等)
所有的资源应尽可能在使用时才创建,使用结束之后手动释放。除非此资源要重复使用。
SolidBrushbrush3=newSolidBrush(this.ForeColor);
//dosomethingwiththisbrush
brush3.Dispose();
1.不包含托管资源时的资源释放
///<summary>
///Cleanupanyresourcesbeingused.
///</summary>
protectedoverridevoidDispose(booldisposing)
{
if(disposing)
{
if(components!=null)
{
components.Dispose();
}
//Releaseothermanageresources
}
base.Dispose(disposing);
}
包含非托管资源的资源释放
StaticHandleforIOhandle(打开一次,同步使用)Relay,Modbus,IPCam等。
请参考清理非托管资源->实现Dispose方法
3.打包资源。如字符串(多语言管理)等
三.在“自定义工具箱”对话框中显示控件
1.将控件程序集安装到全局程序集缓存中。有关附加信息,请参见如何:将程序集安装到全局程序集缓存
2.修改注册表
在HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework\v2.0.x\AssemblyFoldersEx\PublicAssemblies\<KeyName>处创建注册表项,并将“默认”字符串值设置为您的程序集所在的文件位置。<KeyName>可以是您希望设置的任何值。
在VisualStudio.NET2003中,此注册表项应该在HKEY_LOCAL_MACHINE\Software\Microsoft\VisualStudio\7.1\AssemblyFolders\<KeyName>处创建。
在VisualStudio.NET2002中,此注册表项应该在HKEY_LOCAL_MACHINE\Software\Microsoft\.NET\AssemblyFolders\<KeyName>处创建。
四.控件要素
1.将属性应用于控件的属性
Category、Description、Editor、DefaultValue
如果属性不具有简单的默认值,则可以为属性提供可选方法ShouldSerialize和Reset。如果属性(Property)具有简单的默认值,则应用DefaultValueAttribute
设计器可使用ShouldSerial
yy****24
实名认证
内容提供者
最近下载