2012-08-14 24 views
0

我有一些問題讓我的標籤顯示在GUI中...有什麼想法?新創建的標籤不會顯示GUI

private void addNewExcerciseButton_Click(object sender, EventArgs e) 
     { 

      int y = 305; 
      int x= 61; 

      string tempExcercise = excerciseTextBox.Text; 
      excerciseTextBox.Clear(); 


      Label[] excerciseLabels = new Label[numExercises]; 



      for (int i = 0; i < numExercises; ++i) 
      { 
       excerciseLabels[i] = new Label(); 
       excerciseLabels[i].Text = ToString("{0}. {1}", i + 1, tempExcercise);; 
       excerciseLabels[i].Location = new System.Drawing.Point(x, y); 
       x += 10; 
       y += 10; 


       ++numExercises; 
      } 
} 

在此先感謝。

numExercises是全球性的。

回答

3

您必須將每個新標籤添加到可見控件(例如您的窗體)包含的控件集合中。您正在創建並設置它們,但它們不在GUI中,直到它們處於控制層次結構中。

添加以下行設置標籤的位置後:

this.Controls.Add(exerciseLabels[i]); 
2

您需要的標籤添加到GUI:

this.Controls.Add(excersizeLabels[i]); 

作爲一個側面說明,有在使用數組是沒有意義的。

+0

我將創建超過20多個標籤,所以我做了一個數組來做到這一點。 – user1582483 2012-08-14 21:24:14

+0

好吧,我不同意數組中沒有任何意義,但是你可以定義一個List並設置初始容量並獲得幾乎相同的性能。 – KeithS 2012-08-14 21:24:39

+0

我經常使用常用功能保留控件,或者我想在集合中執行類似的操作。使它們比迭代完整的控件層次結構更容易,特別是如果控件位於該層次結構的不同級別。 – KeithS 2012-08-14 21:25:59