|
摘要:本月 Billy Hollis 将向您介绍如何从头创建可呈现其特有界面的可视控件。
我从来没有真正想过要当一名 C++ 程序员,因为我太懒了,不能那么辛苦地工作。但我必须承认,我过去常常嫉妒那些 C++
程序员,嫉妒他们编写可视控件的能力。
Visual Basic? 6.0 及其早期版本中的控件仅限于“复合”控件(由其他控件组成的控件),这种控件称为
UserControl。在 Visual Basic 6.0 中编写能够在屏幕上呈现其特有可视外观的控件几乎是不可能的。
现在好了,可以使用功能强大的 Visual Basic .NET 编写各种类型的可视控件了!不仅可以编写复合的
UserControl,还能继承现有的控件(如 TextBox)并扩展其新功能。更重要的是,还可以从头编写能够呈现其特有界面的可视控件。
在本文中,我将从头创建一个完整的可视控件,以说明 Visual Basic .NET 的后一种功能。该控件是一个“红绿灯”-
一个包含三个圆(分别代表红、黄、绿三个灯)的矩形。图 1 显示各个灯亮时该控件的外观,控件的背景颜色设置为系统颜色
ControlDark。

图 1:带有三个 TrafficLight 控件的窗体,每个控件亮不同的灯。
我们称它为 TrafficLight 控件,它可以通过代码或让用户单击灯来改变亮起的灯。
因为 TrafficLight 是一个可视的 Windows 窗体控件,它将继承
S ystem.Windows.Forms 命名空间中的 Control
类。这样,它将具有很多预定义的属性、方法和事件,包括控制其外观的属性,如
ForeColor、BackColor、Size 和 Location;还包括事件,如
MouseOver 和 Click。您可以查看 .NET 文档,获得 Control 类成员的完整列表。
红绿灯也需要具有特殊的属性和事件,如下所示:
| 为了使本示例尽可能接近实际应用环境,我们还将包括能够确保在 Visual Studio? .NET IDE
中更好地使用控件的代码。我们为工具箱设置适当的图标,并包括能够使属性更好地与各属性窗口集成的逻辑。