2013-03-08 25 views
0

困惑爲什麼我收到此錯誤:獲取組合框項標籤

Combobox項目:

private readonly string[] cbTexts = new string[] { "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday", "(Cleare)" }; 

動態comboboxes

private void comboOptions() 
     { 
      cmb = new ComboBox[countWaiters]; 
      int width = 100; 
      int height = 20; 
      for (int i = 0; i <= 3; ++i) 
      { 
       newBox = new ComboBox();   
       newBox.Text = "(Request)";   
       newBox.Size = new Size(width, height); 
       newBox.Location = new Point(0, (i * height)); 
       cmb[i] = newBox; 
       cmb[i].SelectedIndexChanged += new EventHandler(cmb_SelectedIndexChanged); 
       foreach (string cbText in cbTexts) 
       { 
        cmb[i].Items.Add(cbText); 
       } 

       pnlRequests.Controls.Add(newBox); 
      }    
     } 

SelectedIndexChanged事件爲comboboxes

void cmb_SelectedIndexChanged(object sender, EventArgs e) 
     { 

      ComboBox senderCmb = (ComboBox)sender; 

      int row = (int)senderCmb.Tag; 
      //this is where the program crashes 
      //more code located here that does something 
     } 

錯誤: 注意:有些方法的名稱已經從這一形象改變,但不effectanything enter image description here

+3

我不能看到你設置的標籤屬性,因此毫不奇怪它是NULL(因此在試圖轉換爲int時出現錯誤)。 – Bridge 2013-03-08 15:56:01

+0

啊是的,我明白了......愚蠢的錯誤! – Tacit 2013-03-08 15:58:26

回答

2

您沒有在給定的代碼設置的Tag財產,我不明白爲什麼你需要至。我懷疑你想獲得當前SelectedIndex:由我

int row = senderCmb.SelectedIndex; 
0

失蹤線,愚蠢的錯誤,使:

cmb[i].Tag = i;