第 6 步:清理
为了使控件顺利地运作,我们还需要执行一些其他操作。例如,大小改变时需要重新绘制控件。而且,为了不改变控件的比例,我们需要检测影响大小的属性发生更改的时间,然后强制宽度等于高度的三分之一。下面是完成这两项任务的事件处理程序:
Private Sub TrafficLight_Resize(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles MyBase.Resize
Me.Invalidate()
End Sub
Private Sub TrafficLight_Layout(ByVal sender As Object, _
ByVal e As System.Windows.Forms.LayoutEventArgs) _
Handles MyBase.Layout
Select Case e.AffectedProperty
Case "Bounds"
Me.Width = CInt(Me.Height * 0.3333)
Case Else
' 不执行任何操作
End Select
End Sub
最后,设置控件在工具箱中使用的图标。控件已经有一个看似齿轮的默认图标,但是我们要使用 Visual Studio .NET 附带的红绿灯图标。
控件的工具箱图标是由名为 ToolboxBitmap 的类中的特性设置的。在以 Public Class 开始的行上面插入以下行:
<ToolboxBitmap("C:\Program Files\Microsoft Visual Studio
.NET\Common7\Graphics\icons\Traffic\TRFFC09.ICO")> _
注意:所有内容都应在一行中。为了便于阅读,我们在 Studio 后放置了一个回车。粘贴该代码时,要确保它们位于一行中,Studio 和 .NET 之间只需一个空格,并删除回车。如果您已经将 Visual Studio .NET 安装到其默认位置,那么上述代码将用 Visual Studio 目录中的图标设置该特性。如果您没有将 Visual Studio .NET 安装到其默认位置,则需要相应地更改图标的路径名。