我已经开始使用动态创建的按钮网格在 vb.net 中制作扫雷游戏,这些按钮存储在二维数组中。我有另一个二维数组 ( Boolean
),它跟踪某个位置是被覆盖还是未被覆盖。而且我有一个“更新网格”方法,可以随时运行,以更新网格,以便所有应该发现的都在屏幕上显示。
我将如何做到这一点,以便在单击任何按钮时将该按钮的状态设置为未覆盖?我尝试使用事件处理程序,但我无法传递任何参数,而且我需要知道按钮的 x 和 y 位置,以便找到正确的按钮。
谢谢。
我已经开始使用动态创建的按钮网格在 vb.net 中制作扫雷游戏,这些按钮存储在二维数组中。我有另一个二维数组 ( Boolean
),它跟踪某个位置是被覆盖还是未被覆盖。而且我有一个“更新网格”方法,可以随时运行,以更新网格,以便所有应该发现的都在屏幕上显示。
我将如何做到这一点,以便在单击任何按钮时将该按钮的状态设置为未覆盖?我尝试使用事件处理程序,但我无法传递任何参数,而且我需要知道按钮的 x 和 y 位置,以便找到正确的按钮。
谢谢。
你可以把你所有的按钮放在一个Dictionary(Of Button, Boolean)
each 中,并带有 value True
。稍后在您的 Click 事件处理程序中,将 sender 转换为 Button 并将字典中的相应条目设置为False
.
有点像这样(请原谅我糟糕的 VB,我通常使用 C#):
Buttons = new Dictionary(Of Button, Boolean)()
For Each button in YourButtonArray
Buttons.Add(button, True)
End
' Click handler:
Dim clickedButton = CType(sender, Button)
Buttons(clickedButton) = False
更新:或者 - 正如@Hans Passant 在对您问题的评论中指出的那样 - 您可以使用该Tag
属性,这会更简单。