我一直在编写一个Winforms应用程序,在该应用程序中,用户从comboBox中选择某些内容。但是,当我运行应用程序时,编译器会抛出一个ArgumentOutOfRange异常,因为索引是-1。
代码:
if (comboBox1.Enabled == false || comboBox2.Enabled == true || comboBox3.Enabled == false)
{
int index = comboBox2.SelectedIndex;
string t = comboBox2.Items[index].ToString();//<==EXCEPTION
switch (t)
{
case "Ounzes==>Pounds":
break;
case "Pounds==>Ounzes":
break;
case "Tons==>Pounds":
break;
case "Pounds==>Tons":
break;
case "Ounzes==>Tons":
break;
case "Tons==>Ounzes":
break;
case "Stone==>Pound":
break;
case "Pound==>Stone":
break;
case "Tons==>Stone":
break;
case "Stone==>Ton":
break;
}
}谁能解释一下为什么要抛出这个异常,因为我确实从comboBox中选择了一些东西。
发布于 2013-08-10 18:12:04
您的ComboBox中似乎没有选择任何项。看一看文档
当前选定项的基于零的索引。如果没有选择项,则返回负1 (-1)的值。
解决这个问题的最明显的方法就是在尝试使用项目之前先检查一下,以确保已经选择了一个项,如下所示:
int index = comboBox2.SelectedIndex;
if (index >= 0)
{
string t = comboBox2.Items[index].ToString();
switch (t)
{
...
}
}https://stackoverflow.com/questions/18164899
复制相似问题