C#程序异常

时间:2010-09-09 07:46:43

标签: c# winforms combobox

发生了异常。指定例外转换无效

int s = (int)comboBox1.SelectedItem;

8 个答案:

答案 0 :(得分:4)

这意味着组合框项目中的值不是int

答案 1 :(得分:2)

Check SelectedIndex> -1或SelectedItem!= null

答案 2 :(得分:1)

int s = int.Parse(comboBox1.SelectedItem.ToString());

您只能通过投射将任何对象转换为int。如果您有string,则需要使用int.Parse()string转换为int

如果您将自己的对象作为项目放入组合框中,则可以将comboBox1.SelectedItem转换为您的类型。

如果您在组合框中插入了字符串对象,则

ComboBox.SelectedItem.ToString()仅返回内容,更可靠的方法是检查ComboBox.Text属性。这也可以帮助您进行null次检查。

答案 3 :(得分:1)

如果你想获得组合框中显示的值,也许你应该尝试:

int s = (int)comboBox.SelectedValue;

答案 4 :(得分:1)

MSDN上的使用示例here

但实际上,您需要在问题中提供更多详细信息:)

总猜测但常见的事情可能是将数据库ID存储在组合框值属性中,将数据库项文本存储在text属性中。如果您正在执行此操作,那么您可以使用以下语法,如果您确定组合框的值始终可以转换为int。

int i = (int)ComboBox1.SelectedValue.ToString();

或者如果你不确定它总是一个int你可以......

try
{
int i = int.Parse(ComboBox1.SelectedValue.ToString());
}
catch
{
//handle the non int situation here
}

int i;
bool result = int.TryParse(ComboBox1.SelectedValue.ToString(), out i);

            if (result)
            {
                //you can use the variable i now
            }
            else
            {
                //The parse failed so handle a non int situation here
            }

答案 5 :(得分:1)

尝试Convert.ToInt32(combo.Items[combo.SelectedIndex].Value.ToString());

答案 6 :(得分:0)

int s = comboBox.SelectedIndex

答案 7 :(得分:-1)

您正在尝试将ComboBox项目转换为int。

尝试

int s = comboBox1.SelectedIndex;

如果你想要项目的索引。