c# 自定义控件 生成代码,c#用户控件和自定义控件
自定义控件开发
一般来说,Visual Studio 2005自带的几十个控件足够我们使用了。但是,在一些特殊的需求中,可能需要一些特殊的控件来与用户进行交互。这时候就需要开发新的控件,满足用户的需求。
要开发自己的控件,有几种方法:
复合控件:将现有的各种控件组合成一个新的控件,以满足用户的需求。
扩展控件:在现有控件的基础上,派生出新的控件,增加新的功能,或者修改原有的功能,以满足用户的需求。
自定义控件:它直接从系统派生。Windows.Forms.Control类,也就是说,它是自行设计和实现一个全新控件的最灵活、最强大的方法。但是,它对开发者的要求最高。若要实现自定义控件,必须为Control类的OnPaint事件编写代码,并在OnPaint事件中绘制自定义控件。同时,您可以重写Control类的WndProc方法来处理基础Windows消息。所以要实现一个自定义控件,对开发者的要求很高,需要开发者了解GDI和Windows API的知识。
下面给大家介绍这三种方法。
复合控件(复合控件)
复合控件实际上是控件的集合,类似于堆叠的木头。因此,根据用户的需要,VS 2005工具箱中的控件可以任意组合,形成一个复合控件。在将来的使用中,生成的复合控件将被视为控件。
复合控件通常派生自UserControl类,因此复合控件(用户控件)可以在UserControl测试容器中进行测试。
要创建组合:
步骤1:创建一个新的Windows控件库项目“CompositeControlDemo”
步骤2:将Visual Studio 2005中的控件组合添加到复合控件中。
添加了一个标签控件和一个计时器控件。
Label控件的Text属性设置为“”,Timer控件的Interval属性设置为1000毫秒,即1秒,Enabled属性设置为True。
设置定时器控件的Tick事件并添加代码。
步骤3:向复合控件添加属性。我们添加了前景色和背景色属性。
步骤4:生成复合控件。
直接按F5,或者点击生成菜单,选择生成解决方案菜单,生成复合控件。
我们可以看到生成的复合控件以. dll文件的形式存在。
第五步:在工具箱中显示复合控件,并设置相应的图标。
1.在工具箱中显示复合控件。
2.在工具箱中设置复合控件的图标。
在这里,我们可以看到复合控件已被添加到工具箱中,但使用默认图标显示(小齿轮),有两种方法可以在工具箱中显示自定义图标。这里,先说第一个。
[工具箱位图(键入(按钮))]
步骤6:测试复合控件。
实际上,当我们直接按F5生成复合控件时,会弹出一个“用户控件测试容器”。在这个容器中,显示了我们的复合控件MyDigitalClock的操作,同时,它的右侧还有一个属性窗口。通过更改属性窗口中的属性设置,可以更改复合控件的相应状态。例如,如果我们修改ClockBackColor属性和ClockForeColor属性(即设置背景色和前景色),我们可以看到MyDigitalClock控件的外观发生了变化。
以上是通过“用户控件测试容器”来测试复合控件。事实上,我们还可以通过创建一个新的Windows项目来测试复合控件。
1.创建一个新的测试项目“TestCompositeControls”。
2.将复合控件“MyDigitalClock”添加到窗体中。
3.设置MyDigitalClock控件的属性。
4.按F5运行并观察窗体中的MyDigitalClock控件。
扩展控件:在现有控件的基础上,派生出新的控件,增加新的功能,或者修改原有的功能,以满足用户的需求。
扩展控件保留了原控件的接口、属性和方法,同时可以扩展原控件的功能,实现新的功能,满足用户的需求。
扩展控件可以两种方式扩展:
1.扩展用户界面,界面上有改动,让它看起来更好看。
要改变界面,需要重新加载OnPaint方法,重新绘制原控件的界面。
2.拓展功能,强化功能。
功能增强就是增加新的功能来满足用户的需求。
要创建扩展控件:
步骤1:创建一个新的类库项目。
步骤2:添加引用和继承。
例如,如果我们想扩展按钮控件,我们需要添加组装系统。包含按钮控件的窗体。
同时,它继承自制度。窗口.窗体.按钮
步骤3:重载OnPaint方法,扩展用户界面,或者添加新的函数。
步骤4:生成扩展控件。
直接按F5,或者点击生成菜单,选择生成解决方案菜单,生成复合控件。
我们可以看到生成的扩展控件以. dll文件的形式存在。
第五步:在工具箱中显示扩展控件,并设置相应的图标。
与复合控件相同
步骤6:测试扩展控件。
复合控件通常派生自UserControl类,因此复合控件(用户控件)可以在UserControl测试容器中进行测试。但是,对于扩展控件,通常它们不是直接从UserControl类派生的,而是从需要扩展的控件本身派生的。就像我们后面要讲的XButton扩展控件一样,是从Button类继承而来,通过添加类的方式添加到项目中。(复合控件是待验证的控件库项目。)这时就没有办法在“UserControl测试容器”中进行测试了,只能新建一个。
添加测试项目。
自定义控件:直接从系统派生。Windows.Forms.Control类,也就是一个全新的控件,自己设计,从头创建。
这是最灵活、最强大的方法,但对开发者的要求也最高。
若要实现自定义控件,可以使用Control类提供的最基本的函数。
Control类提供了创建控件所需的基本功能,包括鼠标和键盘处理事件等。但是,应该注意,Control类不提供创建控件所需的图形界面和特定函数。因此,要创建自定义控件,必须自己绘制控件的界面和具体函数。
要绘制自定义控件的界面,必须在OnPaint事件中编写代码,并在OnPaint事件中实现自定义控件的绘制。还可以重写Control类的WndProc方法来处理底层Windows消息。
所以要实现一个自定义控件,对开发者的要求很高,需要开发者了解GDI和Windows API的知识。
创建自定义控件是开发自己的控件的三种方法中最复杂的一种,因为您可以自己编写。控件有什么属性,自己写;该控件使用什么功能?自己写吧。
要创建自定义控件:
步骤1:创建新的类库项目(直接从Control类派生)或新的Windows控件库项目(从UserControl派生)
步骤2:添加一个引用(仅当它直接从控件类派生时才需要)
一般来说,自定义控件都有相应的用户界面,所以至少要引用系统。应添加Windows.Forms。
第三步:重写OnPaint事件,绘制用户界面。
步骤4:向自定义控件添加属性并实现功能。
步骤5:生成自定义控件。
第6步:在工具箱中显示自定义控件,并设置相应的图标。
步骤7:测试自定义控件。
自定义控件的测试:
如果自定义控件是从Control类派生的,则不能在UserControl测试容器中测试自定义控件,只能创建一个新的Windows应用程序来测试自定义控件。
当然,自定义控件不一定要从Control类派生,也可以从UserControl类派生。如果它们是从UserControl类派生的,则可以在UserControl测试容器中对它们进行测试。
要创建自定义控件:
步骤1:创建新的类库项目(直接从Control类派生)或新的Windows控件库项目(从UserControl派生)
步骤2:添加一个计时器控件,并设置属性和事件。
第三步:重写OnPaint事件,绘制用户界面。
步骤4:生成自定义控件。
步骤5:测试自定义控件。
您还可以创建一个新的TestCustomControls项目。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。