2016-05-16 3 views
-2
private void Form1_Load(object sender, EventArgs e) 
    { 
     palabras pala = new palabras(); 
     pala.Traelo(); 
     Label[] labels = new Label[pala.cantLetras]; 

    } 
private void MoveteA() 
    { 
     for (int i = 0; i < posActLabelsX.Count; i++) 
     { 
     labels[i].Location=Point(posLabelFormX - posLabelBotonX, posLabelFormY - posLabelBotonY); 
     } 
    } 

Но это не позволит мне использовать его, потому что он не является общедоступным, но если я поставлю публичный ярлык [] labels = new Label [pala.cantLetras]; это дает мне ошибку, что я не знаю, что это такое, но нарушает всю программу.Как сделать массив ярлыков общедоступным

+0

Сделать это глобальным полем? –

+0

Можете ли вы поместить ошибку, которая дает вам, когда вы публикуете ярлыки? – Aimnox

+0

Вы вообще не должны этого делать. Ярлыки являются элементами GUI, которые несут ответственность за форму. Вероятно, лучше просто создать публичную функцию или метод, который обращается или обрабатывает эту текстовую информацию для вас. Похоже, вы пытаетесь имитировать то, что делает FlowLayoutPanel. – LarsTech

ответ

0

открытые поля могут быть помещены непосредственно в классе, как так

public Label[] labels; 
private void Form1_Load(object sender, EventArgs e) 
{ 
    palabras pala = new palabras(); 
    pala.Traelo(); 
    labels = new Label[pala.cantLetras]; 
} 

однако, если вы не используете его вне своего класса, вы можете быть в состоянии держать его закрытым еще, и вы будете по-прежнему быть в состоянии использовать его в обоих методах, так как они оба в классе

0

Я хотел бы создать общественную собственность получить, и частный набор так:

public Label[] labels {get; private set;} 
    private void Form1_Load(object sender, EventArgs e) 
    { 
     palabras pala = new palabras(); 
     pala.Traelo(); 
     labels = new Label[pala.cantLetras]; 
    } 

также вы краевые в течение л oop может вызвать Индекс за пределы, исправить его вот так:

for (int i = 0; i < labels.Count; i++) 
Смежные вопросы