如何点击类中的任何图片框调用子过程

时间:2014-06-15 20:54:15

标签: vb.net

我正在垄断,我已经上了一个关于每个瓷砖的所有信息的课程(图片框,名称,所有者,价格......) 我如何获得一个子程序,这样如果我点击任何瓷砖,它会弹出一个菜单,询问是否购买/出售房屋和东西 我需要知道的主要事情是如何在点击的任何属性下实现它,以及如何在不需要大量代码的情况下判断哪个特定的被点击 注意:我是Windows窗体的新手(2天),所以我可能不了解高级内容

1 个答案:

答案 0 :(得分:0)

您可以在tile类中定义click事件。在内部,此click事件将由picturebox的click事件处理程序引发。主程序可以为所有tile的click事件注册一个事件处理程序:

Class Tile
    'Define the signature of the event
    Public Delegate Sub TileClickHandler(sender As Tile)

    'The UI control of this tile
    Dim Container As PictureBox

    'The event is raised whenever the tile is clicked
    Public Event Click As TileClickHandler

    Public Sub New()
        'Register a private event handler for the UI control's click event
        AddHandler Container.Click, AddressOf Container_Click
    End Sub

    Private Sub Container_Click(sender As Object, e As EventArgs)
        'The UI control has been clicked, raise my own Click event
        RaiseEvent Click(Me)
    End Sub
End Class


'Main Program
Dim tiles = New List(Of Tile)
'...
For Each t In tiles
    AddHandler t.Click, AddressOf TileClicked
Next

Private Sub TileClicked(sender As Tile)
    MessageBox.Show("Tile " & sender.ToString() & " has been clicked.")
End Sub