2016-11-05 17 views
0

So。私はL1、L2、L3、L9という9つのラベルを持っています。最初のN個のラベルのみを表示したい。私は文字列を作成しようとしましたが、文字列を変数名として使用することはできません。だから、どのように私はそれらを非表示にすることができます変数名をビルドできますか?どのように文字列をラベル名に変換するのですか?C#フォームのラベルを非表示にします。繰り返しのために

文字列名;

(I = 1をint型私は++;;私< = N)のための

あなたはそれをあなたが記述方法を行うことはできません

{

name = "L"+i.ToString(); 
name.Hide(); // error 

}

+0

'VAR 1 = this.Controls.Find(String.Formatの( "L {0}"、I)、TRUE).FirstOrDefault();' –

答えて

0

。あなたの名前を文字列として組み合わせて変数にアクセスすることはできません。

ラベルは変数であり、名前でアクセスする必要があります。最善の策は、配列/リストにすべてを追加し、最初のN個の項目を表示し、他のものを似たようにするメソッドを追加することです。

このような何か:

var labels = Label[] { L1, L2, L3, ... } 

public void HideNLabels(int n) 
{ 
    foreach (Label label in labels.Take(n)) 
    { 
     label.Hide(); 
    } 
} 
+0

ああ、理解。ありがとうございました! :) –

+0

あなたがそれを好きなら答えを受け入れて投票することを忘れないでください:) –

+0

@IlyaChernomordikコントロールは名前で見つけることができます。 –

関連する問題