vb.net: события клики тральщика - PullRequest
1 голос
/ 08 декабря 2011

Я начал делать игру «Сапер» на vb.net, используя динамически созданную сетку кнопок, которые хранятся в 2D-массиве. У меня есть другой 2D-массив (Boolean), который отслеживает, покрыта ли определенная позиция или нет. И у меня есть метод «обновить сетку», который можно запустить в любое время, чтобы обновить сетку, чтобы все, что должно быть обнаружено, было обнаружено на экране.

Как бы я сделал так, чтобы при нажатии любой кнопки состояние этой кнопки было установлено как непокрытое? Я попытался использовать обработчик событий, но не смог передать ни одного аргумента, и мне нужно знать положение кнопки x и y, чтобы я мог найти правильную кнопку.

Спасибо.

1 Ответ

0 голосов
/ 08 декабря 2011

Вы можете поместить все свои кнопки в 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, которое будет проще.

...