1

2D配列に格納されている動的に作成されたボタンのグリッドを使用して、vb.netでマインスイーパゲームの作成を開始しました。別の2D配列(Boolean)があり、特定の位置がカバーされているかカバーされていないかを追跡します。そして、グリッドを更新するためにいつでも実行できる「グリッドの更新」メソッドがあります。これにより、カバーされていないものがすべて画面上でカバーされなくなります。

いずれかのボタンがクリックされたときに、そのボタンの状態がカバーされていない状態に設定されるようにするにはどうすればよいですか?イベントハンドラーを使用してみましたが、引数を渡すことができませんでした。ボタンのxとyの位置を知る必要があるため、正しいボタンを見つけることができます。

ありがとう。

4

1 に答える 1

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プロパティを使用することもできます。これはより簡単です。

于 2011-12-08T16:43:51.017 に答える