2009-12-04 64 views
1

给定以下代码,那么如何收到ArguementOutOfRangeException?设置组合框的SelectedIndex会引发ArgumentOutOfRangeException

if (comboBox1.Items.Count > 0) 
{ 
    comboBox1.SelectedIndex = 0; 
} 

此代码位于我的表单Load事件中。我知道组合框中有项目,但我无法设置选定的索引。 MSDN表示如果指定的索引小于或等于-2,或者大于或等于组合框中的项目数,则引发ArguementOutOfRangeException。

我刚刚写的快速测试应用程序没有出现同样的问题 - 可能会发生什么?

+0

我认为需要更多的代码。很明显,如果您使用相同的代码创建了一个测试应用程序,但它不会产生问题,其他代码则负责。 – BlueMonkMN 2009-12-04 12:20:47

+1

确保你的combo绑定了数据源,或者你在调用这段代码之前插入了ListItem,如果没有选择它,它将返回-1 – Adeel 2009-12-04 12:25:03

+0

也许它还没有被渲染?你可以在一个按钮下而不是在表单加载下执行此调用。 – RvdK 2009-12-04 12:25:06

回答

2

我不是很白痴。所选的索引更改事件正在触发,并且在该代码中,一个不同的组合框将其selectedIndex设置为0 - 但是,对于某些数据,它没有被填充,并且在设置selectedIndex之前没有基本的错误检查。

感叹。

相关问题