2014-01-20 37 views
1

我使用如下代碼創建鏈接標籤的列表:問題與創建鏈接的列表標籤

LinkLabel[] lnkArray = new LinkLabel[10]; 

     for (int i = 0; i < 10; i++) 
     { 
      lnkArray[i] = new LinkLabel(); 
      lnkArray[i].Text = "test" + i; 
      lnkArray[i].Location = new System.Drawing.Point(20 + (i + 5), 50); 
      lnkArray[i].Size = new Size(200, 25); 
     } 

     panel1.Controls.AddRange(lnkArray); 

下面是結果的圖像:

enter image description here

它看起來對我來說很好,但是這總是會在面板上生成一個text = test0的鏈接標籤。因此,它基本上只添加了列表中的第一個解決方案?

+0

我很困惑你的問題。請解釋更多 –

+0

@VigneshKumar讓我更好地拍攝屏幕截圖 – confusedMind

+0

@VigneshKumar現在看到了,因爲我只做了10個,所以只給第一個面板添加一個。 – confusedMind

回答

3

沒有問題AddRange
代碼中的問題是LinkLabel(s)重疊。
代碼中LinkLabel的寬度爲200.因此,您應該在標籤之間留出至少200px的間隔。
嘗試將您的代碼更改爲: -

LinkLabel [] lnkArray = new LinkLabel [10];

for (int i = 0; i < 10; i++) 
    { 
     lnkArray[i] = new LinkLabel(); 
     lnkArray[i].Text = "test" + i; 
     lnkArray[i].Location = new System.Drawing.Point(20 + (i + 200), 50); 
     lnkArray[i].Size = new Size(200, 25); 
    } 

    panel1.Controls.AddRange(lnkArray); 
0

簡單地使用它來代替陣列

for (int i = 0; i < 10; i++) 
    { 
     LinkLabel lnkLbl = new LinkLabel(); 
      // add properties i.e Text , Location , size 
     panel1.Controls.Add(lnlLbl); 
    } 
+1

那麼AddRange有什麼問題呢? –

+0

我確實做了相同的事情和相同的結果。 – confusedMind

+0

我覺得在計算位置點 – Dibu