C#创建用户控件

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

演练:使用Visual C# 创作用户控件

Visual Studio .NET 2003

用户控件提供了一种创建和重用自定义图形界面的方法。用户控件本质上是具有可视化表示形式的组件。因此,它可能包含一个或多个Windows 窗体控件、组件或代码块,它们能够通过验证用户输入、修改显示属性或执行作者所需的其他任务来扩展功能。可以按照与其他控件相同的方式,将用户控件置于Windows 窗体中。在本演练的第一部分,创建一个名为ctlClock 的简单用户控件。在本演练的第二部分通过继承扩展ctlClock 的功能。

创建项目

创建新的项目时应指定其名称,以设置根命名空间、程序集名称和项目名称,并确保默认组件将位于正确的命名空间中。

创建ctlClockLib 控件库和ctlClock 控件

1.在“文件”菜单上,指向“新建”,然后选择“项目”以打开“新建项目”对话框。

2.从“C# 项目”列表中选择“Windows 控件库”项目模板,然后在“名称”框中键入ctlClockLib。

注意“Windows 控件库”模板在Visual C# .NET 的标准版中不可用。有关更多信息,请参

见Visual C# 标准版的功能。

默认情况下,项目名称ctlClockLib也被分配到根命名空间中。根命名空间用于限定程序集中的组件名。例如,如果两个程序集都提供名为ctlClock 的组件,则可以使用

ctlClockLib.ctlClock指定ctlClock 组件。在解决方案资源管理器中,右击

“UserControl1”并从快捷菜单中选择“查看代码”。

3.找到Class语句public class UserControl1,将UserControl1更改为ctlClock

以更改组件的名称。

注意默认情况下,用户控件从系统提供的UserControl类继承。UserControl类提供所

有用户控件要求的功能,并实现标准方法和属性。

4.找到构造函数public UserControl1(),将UserControl1 更改为ctlClock。

5.在解决方案资源管理器中,单击“UserControl1”,然后在“属性”窗口中,将FileName属性

更改为ctlClock.cs。

6.从“文件”菜单中,选择“全部保存”来保存项目。

将Windows 控件和组件添加到用户控件

可视化界面是用户控件的基本部分。这种可视化界面是通过将一个或多个Windows 控件添加到“用户控件设计器”中实现的。在下面的演示中,将向用户控件中加入Windows 控件,并编写代码以实现功能。

将标签和计时器添加到用户控件中

1.在解决方案资源管理器中,右击“ctlClock.cs”,然后选择“视图设计器”。

2.在工具箱中,单击“Windows 窗体”选项卡,然后双击label。

名为label1的标签控件被添加到用户控件设计器上的控件中。

3.在设计器中,单击label1。在“属性”窗口中,设置下列属性。

4.在“工具箱”中,单击“Windows 窗体”,然后双击“计时器”。

因为计时器是个组件,所以它在运行时没有可视化的表示形式。因此,它不与其他控件一起出现在“用户控件设计器”上,而是出现在组件栏中。

5.在组件栏中,单击timer1,并将Interval属性设置为1000,将Enabled属性设置为

true。

Interval属性控制计时器组件的刻度频率。timer1每走过一个刻度,它都会运行一次

Timer1_Tick事件中的代码。interval 表示前后两次刻度之间的毫秒数。

6.在组件栏中,双击timer1以转到ctlClock 的timer1_Tick事件。

7.将该代码修改为类似如下所示的代码示例。请确保将访问修饰符从private更改为

protected:

protected void timer1_Tick(object sender, System.EventArg

s e)

{

// Causes the label to display the current time

lblDisplay.Text = DateTime.Now.ToLongTimeString();

}

这些代码将使得当前时间显示在lblDisplay中。因为timer1的间隔设置为1000,所以该事件每隔1000 毫秒激发一次,从而每隔一秒就更新一次当前时间。

8.用virtual关键字修改该方法使其可重写。有关更多信息,请参见本主题的下一节“从用户控

件继承”。

protected virtual void timer1_Tick(object sender, System.

EventArgs e)

9.从“文件”菜单中,选择“全部保存”来保存项目。

将属性添加到用户控件中

现在,clock 控件封装了Label控件和Timer组件,每个都有其自己的继承属性组。尽管您的控件的后续用户无法访问这些控件的个别属性,但可以通过编写适当的代码块来创建和公开自定义属性。在下面的章节中,您将向控件中添加属性,这些属性使用户能够更改背景和文本的颜色。

将属性添加到用户控件中

1.在解决方案资源管理器中,右击“ctlClock.cs”,然后从快捷菜单中单击“查看代码”。

控件的代码编辑器打开。

2.找到public class ctlClock 语句。在开始的{ 后面,键入:

private Color colFColor;

private Color colBColor;

这些语句会创建私有变量,用来存储要创建的属性的值。

3.在步骤2 中的变量声明下方键入以下代码:

// Declares the name and type of the property.

public Color ClockBackColor

// Retrieves the value of the private variable colBColor.

相关文档
最新文档