3

私はc#のWindowsアプリケーションを持っています。フォームには名前の付いた12個のラベルがあります

label1, label2 , ...............

私は12個の数字の配列を持っています(いくつかの計算の後)

お気に入り :

int[] nums = new int[12] {1, 0, 4, 6,.............};

すべてのラベルアイテムにそれぞれ配列からの値をループで割り当てたい

何かのようなもの

 for (int i = 1; i <= 12; i++) {
     label+i.Text = nums[i-1].ToString();
   }

これを行うための効率的な方法は何ですか?

ありがとう

4

3 に答える 3

7

対応するラベルの配列を作成します。

Label[] labels = new Label[12] { label1, label2, ... };

for(int i = 0; i < 12; i++)
{
    labels[i].Text = nums[i].ToString();
}
于 2010-12-08T19:13:46.983 に答える
5

すべてのラベルが同じコントロール(たとえば、パネル)に属している場合は、検索コントロールを使用してこの割り当てを実行できます。

for(int i = 0;i < 12; i++)
{
    Label lbl = myPanel.FindControl("Label" + i.ToString());
    lbl.Text = nums[i].ToString();
}
于 2010-12-08T19:13:53.587 に答える
1

このFindControlメソッドを使用して、名前に基づいてコントロールを見つけることができます。

for (int i = 0; i < nums.Length; i++) {
  (Form.FindControl("label" + i.ToString()) as Label).Text = nums[i].ToString();
}
于 2010-12-08T19:15:51.240 に答える