用Visual C#开发简单的复合控件

http://tech.ddvip.com   2007年04月09日    社区交流

本文详细介绍用Visual C#开发简单的复合控件

public TimeLabel()
{
 …
}

  3.添加现有控件。

  由于我们是要在现有控件的基础上创建新控件,所以就应该先把可用的现有控件添加到控件设计界面上。请在“工具箱”中双击Label,再双击Timer,两个现有控件依次被添加到我们的设计界面上,如图2:

  4.公布控件属性

  因为要把时间写入Label的Text属性中,所以我们需要把label1.Text属性公开。请在TimeLabel类中加入以下代码:

public string LabelText
{
 get
 {
  return label1.Text;
 }
}

  注意,这里我们不需要让控件使用者改变label1.Text的值,所以LabelText是个只读属性。

  另外,出于美观的考虑,我们这里还要向控件使用者公开一个LabelBackColor属性,用于获得和设置Label的BackColor属性。代码如下:

public Color LabelBackColor
{
 get
 {
  return label1.BackColor;
 }
 set
 {
  label1.BackColor=value;
 }
}

  当然,你也可以根据需要再增加一些属性,如字体、控件大小等,让控件使用者可以更加灵活地使用控件。

  到这里,我需要向大家补充一点,复合控件创建中的很重要的一条是:任何构成控件(Constituent Control)的属性必须要通过加入复合控件的属性来公开,而不要直接把构成控件直接以public级别公开。比如说上面,我们就不应把Label控件的访问级别设为public来直接公开(默认是private)。这样作的目的是让我们能更好地把握控件的数据安全,从而只把那些最需要的属性公开给控件用户。

责编:豆豆技术应用

正在加载评论...