フォームのロードイベントで実行される次のコードがあります。行と列は可変であり、フォームがロードされるたびに異なる値を持つことができます。VB.NETで動的に生成されるボタンを無効にする
Dim XPos, YPos As Integer
Dim btn As Button
XPos = 80
YPos = 80
For i = 1 To row
XPos = 150
For j = 1 To column
btn = New Button
btn.Name = "btn" & i & j
btn.Size = New Drawing.Size(40, 40)
btn.Location = New Point(XPos, YPos)
Me.Controls.Add(btn)
XPos = XPos + btn.Width + 5
Next
YPos = YPos + btn.Height + 5
Next
と仮定、行= 5と列= 5、出力は私がbtn32をクリックした場合、私は以下のようにだけその隣接するボタンをクリックすることができ、今
btn11 btn12 btn13 btn14 btn15
btn21 btn22 btn23 btn24 btn25
btn31 btn32 btn33 btn34 btn35
btn41 btn42 btn43 btn44 btn45
btn51 btn52 btn53 btn54 btn55
のようになります、 btn21 btn22を、btn23、btn31、btn33、btn41、btn42、btn43と私はボタンの残りの部分をクリックすることはできません。
私が最初にbtn54をクリックすると、btn53、btn43、bt44mbtn45、btn55だけをクリックすることができます。残りのボタンをクリックすることはできません。
とボタンの残りの部分は同じスタイル(色、テキスト...など)に残ってしなければならない
ボタンのそれらの残りの部分を無効にする方法。ここで助けてください...
最初にすべてのボタンを無効にしてから、クリックしたボタンの列と行を抽出します。その後、 'curC - 1、curR - 1'と' curC、curR - 1'と 'curC + 1、curR - 1'と' curC - 1、curR'と 'curC + 1 ' 、curR'などを有効にし、それらを有効にします( 'curC'は現在の列、' curR'は現在の行です)。 –
左上のボタンは「現在の列-1、現在の行-1」の位置にあり、右下のボタンは「現在の列+1、現在の行+ 1」の位置にあります。 –
どのようにコードを有効にできるのか教えていただけますか? –