当前位置:雨林木风下载站 > 技术开发教程 > 详细页面

从头创建 Visual Basic .NET 控件 (6)

从头创建 Visual Basic .NET 控件 (6)

更新时间:2019-05-18 文章作者:未知 信息来源:网络 阅读次数:

第 5 步:使控件响应用户
要允许用户更改灯的颜色,必须检测到用户的鼠标单击操作。有经验的 Visual Basic 开发人员都知道,可以使用多种方法实现这一目的。我们使用最简单的一种方法,即检测 MouseUp 事件。下面是检测用户单击并更改 Status 属性以与之匹配的代码:

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 命名空间中获得的,数学函数通常都保存在该命名空间中。

温馨提示:喜欢本站的话,请收藏一下本站!

本类教程下载

系统下载排行