2011-04-12 107 views
18

我的ComboBox项目集合中有几个项目,我想从此列表中选择一个项目并将其设置为默认项目 - 当应用程序启动时 - 此项目已在组合框中。从Combobox C中选择默认项目#

我想类似的东西:

SelectPrint11.SelectedIndex=2; 

但错误是:):

System.ArgumentOutOfRangeException: InvalidArgument=Value of '2' is not valid for 'SelectedIndex' 

编辑:

我现在不能添加评论..问题连接或什么的..但在我的名单上有3个项目。打印机1,打印机2,打印机3。所有被添加在组合框属性 - >产品 - >收藏

+0

您确定在代码执行时,ComboBox中有三个**(!)项吗? – 2011-04-12 10:02:23

+0

尝试使用** comboBox1.SelectedIndex = comboBox1.Items.Count - 1; ** – V4Vendetta 2011-04-12 10:12:54

回答

47

可以使用的SelectedIndex设置

comboBox1.SelectedIndex= 1; 

OR

的SelectedItem

comboBox1.SelectedItem = "your value"; // 

的后者将不会抛出一个异常,如果该值不在组合框可用

编辑

如果要选择的值不是具体的,那么你将与这个

comboBox1.SelectedIndex = comboBox1.Items.Count - 1; 
+9

如果您使用'SelectedIndex'属性,则计数从0开始,而不是从1开始。 – 2014-08-20 16:05:47

+0

或 'comboBox1。SelectedIndex = comboBox1.Items.IndexOf(“itemName”);' – Luke 2015-09-29 11:54:08

5

请记住,在C#集合是从零开始的(换句话说,集合中的第一产品在位置)。如果列表中有两个项目,并且您想选择最后一个项目,请使用SelectedIndex = 1

2

这意味着您选择的索引超出了组合框中项目数组的范围。在组合框中项目的数组是从零开始,所以如果你有2项,这是项目0和项目1

0
更好
private void comboBox_Loaded(object sender, RoutedEventArgs e) 
{ 
Combobox.selectedIndex= your index; 
} 

或者如果你想比较到组合框后显示一些价值

foreach (var item in comboBox.Items) 
      { 
       if (item.ToString().ToLower().Equals("your item in lower")) 
       { 
        comboBox.SelectedValue = item; 
       } 
      } 

我希望这会对我有帮助。

-1

第一,转到您的组合框位于窗体加载,

那就试试这个代码

comboBox1.SelectedValue = 0; //显示集合中的第一项