2016-05-27 15 views
0

私はこのようなことをしたいので、ラベルを追加してラベル1のラベル2のラベル3などを作成することができます。ラベルには画像が添付されているので、新しいラベルの配列を作成できます。特定の位置も同様に。だから私のフォームのどこにでも表示されないラベルとしてのテキストを持つ新しいラベルを作ることはそれほど役に立ちません。ここでforループのリストに複数のラベルを追加するにはどうすればよいですか?

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

for (int i = 0; i < 10; i++) 
{ 
    labels.Add(label + (i.ToString()));  
} 
+1

[コントロール](https://msdn.microsoft.com/en-us/library/system.windows.forms.control.controls%28v=vs.110%29)に各ラベルを追加する必要があります。 aspx)コレクションをフォームに追加します。 –

+0

Winforms? WPF?ウェブ? – stuartd

+0

コンテナのControlsコレクションにもラベルを追加し、適切なLoacationを設定する必要があります(コンテナがFlowLayoutPanelの場合)。 – TaW

答えて

0

FormからのリストにLabelsを追加することができます。

List<Label> labels = new List<Label>(); 
for (int i = 0; i < 10; i++) 
{ 
    var label = 
     this.Controls.OfType<Label>().Where(lb => lb.Name == "label" + i).FirstOrDefault(); 
    if (label != null) 
     labels.Add(label); 
} 
0

コードサンプルです:

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

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

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 = Page2; 
    label.Name = "label" + ValutaCustomScelta; 
    label.Text = ValutaCustomScelta; 
    label.Size = new System.Drawing.Size(77, 21); 
    customLabels.Add(label); 
    Page2.Controls.Add(label); 
} 
+0

@stuartd編集された回答 – SSJGSS

+1

あなたはどのタブページについて話していますか? – TaW

0

あなたは、コードまたはでラベルを追加しました設計?

コードで追加した場合は、リストに追加してください。

デザインによって追加した場合は、2つのオプションがあります。それらはすべて同じコンテナ(パネル、フォーム、グループボックス...)上にあるか、そうではありません。

彼らはあなたのことができている場合:

for each(control ctr in $yourcontainer.controls) 
{ 
    if(ctr is Label) 
    { 
     labels.add(ctr); 
    } 
} 

彼らは同じコンテナにない場合は、ハードコード

labels.add(%label1name); 
labels.add(%label2name); 
labels.add(%label3name); 
labels.add(%label4name); 

して追加することができます。しかし、彼らはあまりにも多くのであれば、あなたがコードを実行することができますそれぞれのパネルの前に

関連する問題