2

このコードを使用すると、実行時にラベルを作成できます。

ArrayList CustomLabel = new ArrayList();

foreach (string ValutaCustomScelta in Properties.Settings.Default.ValuteCustom)
{
     CustomLabel.Add(new Label());
     (CustomLabel[CustomLabel.Count - 1] as Label).Location = new System.Drawing.Point(317, 119 + CustomLabel.Count*26);
     (CustomLabel[CustomLabel.Count - 1] as Label).Parent = tabPage2;
     (CustomLabel[CustomLabel.Count - 1] as Label).Name = "label" + ValutaCustomScelta;
     (CustomLabel[CustomLabel.Count - 1] as Label).Text = ValutaCustomScelta;
     (CustomLabel[CustomLabel.Count - 1] as Label).Size = new System.Drawing.Size(77, 21);
     Controls.Add(CustomLabel[CustomLabel.Count - 1] as Control);
}

tabPage2 にラベルを作成する必要がありますが、この行は機能しません:

 (CustomLabel[CustomLabel.Count - 1] as Label).Parent = tabPage2;

実行時に tabPage2 にラベルを作成する正しい手順はどれですか? (私はビジュアルスタジオ2010、Windowsフォームを使用しています)

4

1 に答える 1

5

Controlsタブ ページのコレクションにラベルを追加する必要があります。

tabPage2.Controls.Add(CustomLabel[CustomLabel.Count - 1] as Control);

ところで:あなたは使用すべきではありませんArrayList。代わりに を使用しList<Label>ます。さらに、最初にラベルを初期化してから、リストに追加します。これにより、コードがより読みやすくなります。

List<Label> customLabels = new List<Label>();

foreach (string ValutaCustomScelta in Properties.Settings.Default.ValuteCustom)
{
    Label label = new Label();
    label.Location = new System.Drawing.Point(317, 119 + customLabels.Count*26);
    label.Parent = tabPage2;
    label.Name = "label" + ValutaCustomScelta;
    label.Text = ValutaCustomScelta;
    label.Size = new System.Drawing.Size(77, 21);
    customLabels.Add(label);
    tabPage2.Controls.Add(label);
}
于 2013-01-21T13:30:40.770 に答える