2013-07-12 113 views
0

我正在嘗試使用foreach動態創建鏈接標籤。我將每個linklabel的文本設置爲一個存儲在flatestgames字符串數組中的字符串,其鏈接存儲在flatestlinks字符串數組中。 但它是在行flg [i] .Text = s處引發空引用異常,儘管s未設置爲null。 請幫我一把。 下面的代碼片段:在c中使用foreach動態創建鏈接標籤#

if (!(flatestgames == null || flatestgames.Length < 1)) 
     { 
      i = 0; 
      LinkLabel[] flg = new LinkLabel[10]; 
      foreach (string s in flatestgames) 
      { 
       flg[i].Text = s; 
       flg[i].Links.Add(0, s.Length, flatestlinks[i]); 
       Point p = new Point(43, 200 + 23 * i); 
       flg[i].Location = p; 
       flg[i].Visible = true; 
       flg[i].Show(); 
       this.Controls.Add(flg[i]); 
       i++; 
      } 
     } 

回答

0

你確定,你flatestgames數組的長度小於10?你必須在第一次檢查,並宣佈該你:

LinkLabel[] flg = new LinkLabel[10];

爲:

LinkLabel[] flg = new LinkLabel[flatestgames.Length];

我覺得你這個例外,因爲的foreach您嘗試獲得超過10個實體你宣佈。

2

在foreach循環嘗試flg[i] = new LinkLabel();

if (!(flatestgames == null || flatestgames.Length < 1)) 
     { 
      i = 0; 
      LinkLabel[] flg = new LinkLabel[10]; 
      foreach (string s in flatestgames) 
      { 
       flg[i] = new LinkLabel(); 
       flg[i].Text = s; 
       flg[i].Links.Add(0, s.Length, flatestlinks[i]); 
       Point p = new Point(43, 200 + 23 * i); 
       flg[i].Location = p; 
       flg[i].Visible = true; 
       flg[i].Show(); 
       this.Controls.Add(flg[i]); 
       i++; 
      } 
     } 
+0

你應該在你的答案,凡在foreach循環,他需要做到這一點,這是爲什麼。 (這是正確的btw +1) – Sayse

+0

現在它在下一行拋出相同的異常 –

+0

@PrabhanjanBhat - 您應該更新您的問題,然後更新信息(即更新的代碼源) – Sayse