发生了异常。指定例外转换无效
int s = (int)comboBox1.SelectedItem;
答案 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;
如果你想要项目的索引。