2009-06-07 70 views
4

如何使用Microsoft Visual C#Express Edition创建标签数组?有办法用图形(drag'n'drop)编辑器来做到这一点,或者我必须手动将它添加到自动生成的代码?Array of Labels

+1

生成的代码永远不会改变什么:你的修改会由设计师 – 2009-06-07 18:29:58

回答

13

您必须手动添加它。但是不要将它添加到自动生成的代码中,因为它可以被Visual Studio设计器覆盖。

我会将它添加到窗体的Load事件处理程序中。代码可能如下所示:

Label[] labels = new Label[10]; 
labels[0] = new Label(); 
labels[0].Text = "blablabla"; 
labels[0].Location = new System.Drawing.Point(100, 100); 
... 
labels[9] = new Label(); 
... 

PS。你的任务对我来说似乎有点不寻常。您想做什么?也许有更好的方法来完成你的任务。

+0

由于被覆盖......我做的图灵机模拟器。这些标签将代表磁带的一部分 – dpetek 2009-06-07 18:27:07

6

您可以使用GUI编辑器将标签添加到表单中,然后将这些标签添加到表单加载中的数组中。

Label[] _Labels = new Label[3]; 
private void MyForm_Load(object sender, EventArgs e) 
{ 
    _Labels[0] = this.Label1; 
    _Labels[1] = this.Label2; 
    _Labels[2] = this.Label3; 
} 

这将至少使设置的位置更容易。如果您是动态创建标签(或者真的是任何控件),您也可以考虑使用FlowLayoutPanel

0
Label[ , ] _arr = new Label[4 , 4]; 

private void Form1_Load(object sender, EventArgs e) 
{ 
for(int i=0;i<4;i++){ 
    for(int j=0;j<4;j++){ 
     _arr[i ,j] = new Label(); 
     _arr[i ,j].Text = ""+i+","+j; 
     _arr[i ,j].Size = new Size(50,50); 
     _arr[i ,j].Location = new Point(j*50,i*50); 
     //you can set other property here like Border or else 
     this.Controls.Add(_arr[i ,j]); 
    } 
} 
} 
如果你想设置在C#标签的边境

也许你应该检查 http://msdn.microsoft.com/en-us/library/system.windows.forms.label.aspx

标签有属性称为边界。请检查一下。由于

0
int i=0; 
ControlNum=10; 
Label[] lblExample= new Label[]; 
for(i=0;i<ControlNum;i++) 
{ 
    lblExample[i] = new Label(); 
    lblExample[i].ID="lblName"+i; //lblName0,lblName1,lblName2.... 

Form1.Controls.Add(lblExample[i]); 
} 

的xD ...

Joshit0 ..

+0

您正在为Label []声明行使用错误的括号。这段代码不会编译。 – 2014-01-06 22:39:49