2016-05-16 40 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); 
     } 
    } 

但它不會讓我使用它,因爲它不公開,但如果我把公共標籤[] =標籤新的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]; 
    } 

還您在針對L邊界oop可能會導致索引超出範圍,請修正它:

for (int i = 0; i < labels.Count; i++)