用visual c#开发简单的复合控件

用visual c#开发简单的复合控件

ID:9165889

大小:42.50 KB

页数:12页

时间:2018-04-20

用visual c#开发简单的复合控件_第1页
用visual c#开发简单的复合控件_第2页
用visual c#开发简单的复合控件_第3页
用visual c#开发简单的复合控件_第4页
用visual c#开发简单的复合控件_第5页
资源描述:

《用visual c#开发简单的复合控件》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、用VisualC#开发简单的复合控件  本文介绍如何用VisualC#.NET2002开发简单的复合控件(CompositeControl),主要讲解控件开发过程中的属性(Property)和事件(Event)处理,以方便开发人员在.NET平台下根据自己的需要开发适合的控件。  当我们在.NET平台下做WindowsForms开发时,常常需要为了某一特殊用途而把现有控件结合起来使用,比如结合了Label和TextBox的控件就非常容易在窗体上布局(记得Delphi6里就有这么个控件),而结合了特定图案和文字的控件则非常适合显示公司的logo。.NET平台就为我们提供了非常棒的工具和

2、技术来创建这样的自定义控件。下面让我们来一起创作一个可以自动显示时间的控件。  值得注意的是,.NET平台为我们提供了三种控件的开发技术,分别是:继承控件(ExtendedControl)、复合控件(CompositeControl)和自定义控件(CustomControl)(译名可能会有所不同,大家可以以英文为准)。我们现在关心的是第二种——复合控件。OK,Let’sgo!  1.创建控件工程。  在VisualC#.NET中新建一个“Windows控件库”项目,命名为“TimeLabel”  2.更改命名空间、控件类名称。  默认的命名空间是TimeLabel(和项目名称一样)

3、,控件类名称是UserControl1。请把命名空间改为与你的开发习惯一致,如我的是LeoYang.Controls.TimeLabel,当然你也可以选择保留默认命名空间;最好把控件类名称改为有意义的命名,如TimeLabel,这样当该控件出现在工具箱上时,就会显示为TimeLabel而不是UserControl1了。注意,一旦改动类名,则相应的Construction方法名称也要相应改掉,如:publicUserControl1(){ …}  就要改为:publicTimeLabel(){ …}  3.添加现有控件。  由于我们是要在现有控件的基础上创建新控件,所以就应该先把可用

4、的现有控件添加到控件设计界面上。请在“工具箱”中双击Label,再双击Timer,两个现有控件依次被添加到我们的设计界面上,如图2:  4.公布控件属性  因为要把时间写入Label的Text属性中,所以我们需要把label1.Text属性公开。请在TimeLabel类中加入以下代码:publicstringLabelText{ get {  returnlabel1.Text; }}  注意,这里我们不需要让控件使用者改变label1.Text的值,所以LabelText是个只读属性。  另外,出于美观的考虑,我们这里还要向控件使用者公开一个LabelBackColor属性,用于

5、获得和设置Label的BackColor属性。代码如下:publicColorLabelBackColor{ get {  returnlabel1.BackColor; } set {  label1.BackColor=value; }}  当然,你也可以根据需要再增加一些属性,如字体、控件大小等,让控件使用者可以更加灵活地使用控件。    到这里,我需要向大家补充一点,复合控件创建中的很重要的一条是:任何构成控件(ConstituentControl)的属性必须要通过加入复合控件的属性来公开,而不要直接把构成控件直接以public级别公开。比如说上面,我们就不应把Label控

6、件的访问级别设为public来直接公开(默认是private)。这样作的目的是让我们能更好地把握控件的数据安全,从而只把那些最需要的属性公开给控件用户。  5.时间显示的处理。  到现在,我们就可以增加代码来让我们的控件显示时间了。首先请把timer1的Interval属性设为1000,也就是1秒的时隔。然后双击timer1,在其Tick事件处理过程中增加以下代码:label1.Text=System.DateTime.Now.ToLongTimeString();  这样,每隔一秒钟,我们的Label就会重新显示当前系统时间。最后,请双击TimeLabel控件上的空白处,在出现的

7、TimeLabel_Load事件处理过程中增加以下代码来激活Timer:timer1.Enabled=true;  这样,Timer就会忠心耿耿地开始计算时间,并更新Label上的时间文字了。  6.事件处理。  由于是继承自UserControl的控件,所以TimeLabel从一开始便拥有了Click、DragDrop、FontChanged等事件。我们现在要做的是增加一个自定义事件——Tick,以便通知使用我们控件的窗体时间已经改变了。因为我们只需要简简单单地让这

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。