2011-04-12 82 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; //顯示集合中的第一項