2017-05-16 6 views
0

私はいくつかのラベルコントロールでWindowsフォームを持っている:関数内のラベルを動的文字列から更新しますか?ラベル名+文字列

void SetLabelText (String first) 
{ 
    Label test = lbl + first; 
    test.Text = "hello"; 
} 

アイデアが、私は実行することができますされている:

lblBob 
lblFred 
lblGeorge 

私はこれらのラベルにこのような何かを更新する関数を作成したいですジョブを作成してファーストネームを収集し、BobまたはFredまたはGeorgeを関数に渡し、渡された文字列をオブジェクト名lblに追加して関連するラベルを更新しますか?

明らかに、上記はラベルに文字列を追加できないために失敗しました。したがって、上記は可能ですか?

理由:フォームには、関数を呼び出すことによって繰り返しコードを繰り返し更新するために、20以上のラベルがありますか?

答えて

2

あなたはLabelを取得するためにControls.Findを使用することができます。

void SetLabelText (String first) 
{ 
    Label test = Controls.Find("lbl" + first, true).FirstOrDefault() as Label; 
    if (test != null) 
    { 
     test.Text = "hello"; 
    } 
} 

あなたはここで多くを読むことができます:MSDN Find

+0

@DmitryEgorovあなたが正しいです、私はドキュメントの間違ったリンクを入れました、そしてFindは配列を返しました、修正、ありがとうございます。 –

+0

@DmitryEgorovが修正されました。もう一度ありがとうございます! –

+0

ありがとうリカルドは扱い:) –

0

理由だけでラベルを渡しませんか?

void SetLabelText(Label label, string text) 
{ 
    label.Text = text; 
} 
関連する問題