1

我已经开始使用动态创建的按钮网格在 vb.net 中制作扫雷游戏,这些按钮存储在二维数组中。我有另一个二维数组 ( Boolean),它跟踪某个位置是被覆盖还是未被覆盖。而且我有一个“更新网格”方法,可以随时运行,以更新网格,以便所有应该发现的都在屏幕上显示。

我将如何做到这一点,以便在单击任何按钮时将该按钮的状态设置为未覆盖?我尝试使用事件处理程序,但我无法传递任何参数,而且我需要知道按钮的 x 和 y 位置,以便找到正确的按钮。

谢谢。

4

1 回答 1

0

你可以把你所有的按钮放在一个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属性,这会更简单。

于 2011-12-08T16:43:51.017 回答