C# 获取组合框项目标记

C# 获取组合框项目标记,c#,winforms,visual-studio-2010,C#,Winforms,Visual Studio 2010,困惑于我为什么会出现这个错误: 组合框项: private readonly string[] cbTexts = new string[] { "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday", "(Cleare)" }; 动态组合框: private void comboOptions() { cmb = new ComboBox[countWai

困惑于我为什么会出现这个错误:

组合框
项:

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

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);
            }            
        }
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
         }
错误: 注意:此图像中的某些方法名称已更改,但不起任何作用

您没有在给定代码中的任何位置设置
标记
属性,我不明白您为什么需要这样做。我怀疑您想要获取当前的
SelectedIndex

int row = senderCmb.SelectedIndex;

我漏掉了一行,犯了一个愚蠢的错误:

cmb[i].Tag = i;

我看不出您在哪里设置tag属性,因此它为NULL也就不足为奇了(因此在尝试转换为int时会出现错误)。。愚蠢的错误!