因为 TrafficLight 是一个可视的 Windows 窗体控件,它将继承
S ystem.Windows.Forms 命名空间中的 Control
类。这样,它将具有很多预定义的属性、方法和事件,包括控制其外观的属性,如
ForeColor、BackColor、Size 和 Location;还包括事件,如
MouseOver 和 Click。您可以查看 .NET 文档,获得 Control 类成员的完整列表。
红绿灯也需要具有特殊的属性和事件,如下所示:
Status 属性
确定亮起哪种颜色的灯。必须为以下三个枚举值之一:
StatusRed:红灯亮
StatusYellow:黄灯亮
StatusGreen:绿灯亮
BorderWidth 属性
红绿灯周围边框的宽度。
StatusChanged 事件
当通过代码或由用户单击不同的灯改变 Status
属性的值时,触发该事件。
由于这些成员不属于 Control
基类,所以我们需要包括完整的代码以处理它们。我们还需要绘制边框和三个相应颜色的灯的代码,以便在屏幕上绘制红绿灯。最后,我们需要处理用户单击圆以更改亮起灯的操作,并在更改亮起的灯时更改
Status 属性。
为了使本示例尽可能接近实际应用环境,我们还将包括能够确保在 Visual Studio? .NET IDE
中更好地使用控件的代码。我们为工具箱设置适当的图标,并包括能够使属性更好地与各属性窗口集成的逻辑。