從頭建立 Visual Basic .NET 控制項 (六)

來源:互聯網
上載者:User
visual|建立|控制項 第 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 命名空間中獲得的,數學函數通常都儲存在該命名空間中。



相關文章

E-Commerce Solutions

Leverage the same tools powering the Alibaba Ecosystem

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。