2017-03-29 7 views
0

私の娘は学校の宿題があり、ヘビとはしごのゲームを作っていて、ラベル付きの7 x 7グリッドを作成しました。彼女はプレーヤーの位置を設定したいときに、複数のif文を持ち、より速く効率的な方法があることを知っていました。私は VS 2010 VBはフォーム上でコントロールを見つける

VS2010

と遊んだので、しかし、それは基本的に私はこの

Form.FindControl("Label"+player1position).Text = "x" 

ような何かを代わりのように

if player1position = 1 then 
    label1.text = "x" 
end if 
if player1position = 2 then 
    label2.text = "x" 
end if 

とを行うことができなければならないと思った年が経ちました。

Dim matches() As Control = Me.Controls.Find("Label" + player1position, True) 
If matches.Length > 0 AndAlso TypeOf matches(0) Is Label Then 
    Dim lbl As Label = DirectCast(matches(0), Label) 
    lbl.Text = "x" 
End If 

上記のスニペットは関係なく、それが入れ子になってどのように深くラベルを見つけていないだろう、と彼らは異なるコンテナ内にある場合も、それらを見つける:

答えて

0

確かには、WinFormsのを想定して、あなたのような何かを行うことができます。

ラベルはすべて同じコンテナにある場合、あなたのような何かにそれを短縮することができます:それはフォーム上で直接であればラベルを見つけるだろう

Me.Controls("Label" + player1position).Text = "x" 

。別のコンテナの場合は、「Me」を「Panel1」などの名前に置き換えます。

Panel1.Controls("Label" + player1position).Text = "x" 
+0

ありがとうございました。 – Rusty

関連する問題