2009-06-07 3 views
4

Как создать массив меток с Microsoft Visual C# Express Edition? Есть ли способ сделать это с помощью графического редактора (drag'n'drop) или мне нужно вручную добавить его в автоматически сгенерированный код?Array of Labels

+1

никогда не изменить что-либо в сгенерированном коде: ваши изменения будут перезаписаны дизайнером –

ответ

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

6

Вы можете добавить метки к форме с помощью графического редактора, а затем добавить их в массив в форме загрузки.

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

этикетки имеют свойство Border. Пожалуйста, проверь это. Благодаря

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 []. Этот код не будет компилироваться. –

+0

это право .. спасибо Стивен ... (y) –