从头创建 Visual Basic .NET 控件 (六)
敬业的IT人
互联网
佚名
2008-5-23 17:51:08
第 5 步:使控件响应用户
要允许用户更改灯的颜色,必须检测到用户的鼠标单击操作。有经验的 Visual Basic 开发人员都知道,可以使用多种方法实现这一目的。我们使用最简单的一种方法,即检测 MouseUp 事件。
Private Sub TrafficLight_MouseUp(ByVal sender As Object, _
ByVal e As System.Windows.Forms.MouseEventArgs) _
Handles MyBase.MouseUp
Dim nMidPointX As Integer = CInt(Me.Size.Width * 0.5)
Dim nCircleRadius As Integer = nMidPointX
If Distance(e.X, e.Y, nMidPointX, CInt(Me.Size.Height / 6)) _
< nCircleRadius Then
Me.Status = TrafficLightStatus.statusRed
Exit Sub
End If
If Distance(e.X, e.Y, nMidPointX, CInt(Me.Size.Height / 2)) _
< nCircleRadius Then
Me.Status = TrafficLightStatus.statusYellow
Exit Sub
End If
If Distance(e.X, e.Y, nMidPointX, CInt((5 * Me.Size.Height) / 6)) _
< nCircleRadius Then
Me.Status = TrafficLightStatus.statusGreen
End If
End Sub
Private Function Distance(ByVal X1 As Integer, _
ByVal Y1 As Integer, _
ByVal X2 As Integer, _
ByVal y2 As Integer) As Integer
Return CInt(System.Math.Sqrt((X1 - X2) ^ 2 + (Y1 - y2) ^ 2))
End Function
事件处理非常简单。检查鼠标单击的位置和每个圆心之间的距离。(请注意,圆心分别位于控件下方 1/6、1/2 和 5/6 的位置。如果不太明白,可以在纸上画出来看看。)如果计算出的距离小于圆的半径,则更改 Status 属性。
距离由 Distance 函数使用您可能在代数课中学过的公式计算。请注意,平方根函数是从 System.Math 命名空间中获得的,数学函数通常都保存在该命名空间中。
- 最新文章
- 从头创建 Visual Basic .NET 控件 (二)[05-23]
- 从头创建 Visual Basic .NET 控件 (八)[05-23]
- 从 Visual Basic 6.0 到 Visual Ba..[05-23]
- 从 Visual Basic 6.0 到 Visual Ba..[05-23]
- 从 Visual Basic 6.0 到 Visual Ba..[05-23]
- 从 Visual Basic 6.0 到 Visual Ba..[05-23]
- 相关文章
- 从头创建 Visual Basic .NET 控件 (二)[05-23]
- 从头创建 Visual Basic .NET 控件 (八)[05-23]
- 调试使用 Visual Basic .NET 或 Visua..[05-23]
- 介绍MS Agent控件在VB.NET中的应用[05-23]
- 在 Visual Basic .NET创建控件数组[05-23]
- 在 Visual Basic .NET 和 Visual C..[05-23]
