<form id="hz9zz"></form>
  • <form id="hz9zz"></form>

      <nobr id="hz9zz"></nobr>

      <form id="hz9zz"></form>

    1. 明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

      從頭創建 Visual Basic .NET 控件 (6)

      [摘要]第 5 步:使控件響應用戶要允許用戶更改燈的顏色,必須檢測到用戶的鼠標單擊操作。有經驗的 Visual Basic 開發人員都知道,可以使用多種方法實現這一目的。我們使用最簡單的一種方法,即檢測 M...
      第 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 命名空間中獲得的,數學函數通常都保存在該命名空間中。




      日韩精品一区二区三区高清