2013-01-03 96 views
0

我将如何动态地将多个标签添加到面板,其值是从一个范围创建的。我创建了范围并将其添加到标签并通过foreach循环将标签输入到面板,但问题是我只能输出一个。将多个标签添加到面板

var range = Enumerable.Range(1, 90); 
     foreach(int i in range) 
     { 
      string num = i.ToString(); 
      var vartable = new Dictionary<string, Label>(); 
      vartable[num] = new Label(); 
      vartable[num].Text = num; 
      panel1.Controls.Add(vartable[num]); 
     } 
+1

而且您可能会考虑为标签设置位置,或者可能只是将其中一个放在另一个的上面。 – PhoenixReborn

回答

1

你的问题是,你正在为每个迭代创建一个新的字典,我不认为是你想要的行为。将您的代码更改为:

var range = Enumerable.Range(1, 90); 
var vartable = new Dictionary<string, Label>(); 
foreach (int i in range) 
{ 
    var num = i.ToString(); 
    var label = new Label { Text = num }; 
    vartable[num] = label; 
    panel1.Controls.Add(label); 
}