我已经开始使用动态创建的按钮网格在vb.net中制作扫雷游戏,这些按钮存储在2D数组中。我有另一个2D数组(Boolean
),它跟踪某个位置是被覆盖还是被覆盖。我有一个更新网格'可以在任何时候运行的方法,以更新网格,以便在屏幕上显示所有应该被揭开的内容。
我如何制作它,以便在点击任何按钮时,该按钮的状态设置为未覆盖?我尝试使用事件处理程序,但我无法传递任何参数,我需要知道按钮的x和y位置,所以我可以找到正确的按钮。
感谢。
答案 0 :(得分:0)
您可以将所有按钮放在Dictionary(Of Button, Boolean)
中,每个按钮的值为True
。稍后在Click事件处理程序中将发件人强制转换为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
属性,这会更简单。