2011-04-12 21 views
18

ComboBox öğeleri koleksiyonumda birkaç öğe var ve bu listeden bir öğe seçmek ve uygulama başladığında varsayılan öğe olarak ayarlamak istiyorum - bu öğe zaten açılan kutuda.Combobox C'den varsayılan öğe seçiliyor #

deniyorum böyle bir şey:

SelectPrint11.SelectedIndex=2; 

ancak hata :) geçerli:

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

Düzenleme: bağlantısı ile

ben yorum şimdi ekleyemezsiniz .. sorunlar ya da bir şey .. Ama listemde 3 öğeler. Yazıcı1, Yazıcı2, Yazıcı3. > Öğeler - - Bütün Combobox Özellikleri eklenir> Koleksiyon

+0

Bu kod çalıştırıldığında ComboBox'unuzda ** üç (!) öğe bulunduğundan emin misiniz? –

+0

** comboBox1.SelectedIndex = comboBox1.Items.Count - 1; ** – V4Vendetta

cevap

47

Sen Selectedındex kullanarak ayarlayabilirsiniz madde 0 ve madde olmasıdır

comboBox1.SelectedIndex= 1; 

VEYA

SelectedItem

comboBox1.SelectedItem = "your value"; // 

değer combobox mevcut değilse bir istisna olmayacaktır ikincisi

DÜZENLEME

seçilecek değer özgü değilse o zaman bu

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

kullanmayı deneyin, 'SelectedIndex' özelliğini kullanıyorsanız, sayı 0 değil, 0'dan başlar. –

+0

veya 'comboBox1.SelectedIndex = comboBox1.Items.IndexOf ("itemName"); ' – Luke

5

C# koleksiyonları sıfır tabanlı (diğer bir deyişle, bir koleksiyonda ilk öğe konumunda sıfır vardır) olduğunu unutmayın. Listenizde iki öğeniz varsa ve son öğeyi seçmek istiyorsanız, SelectedIndex = 1'u kullanın.

2

Bu, selectedindex'inizin açılan kutulardaki öğe dizisinin kapsamı dışında kaldığı anlamına gelir. senin açılan kutunun öğelerin dizi sıfır tabanlı, yani 2 öğe varsa, bu 1.

0
ile daha iyi olurdu
private void comboBox_Loaded(object sender, RoutedEventArgs e) 
{ 
Combobox.selectedIndex= your index; 
} 

VEYA combobox içine karşılaştırdıktan sonra bazı değerini görüntülemek istiyorsanız

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

Umarım yardımcı olur, benim için çalışır.

-1

ilk

sonra bu kodu

comboBox1.SelectedValue = 0 deneyebilir, combobox bulunduğu formu yükü gidin; // koleksiyonunuzdaki 1. öğeyi gösterir