Jak ustawić ComboBox na pozycji określonej przez Wartosc ?

2015-06-28 17:49

Rejestracja: 11 lat temu

Ostatnio: 2 lata temu

0

Jest wypełniony ComboBox:

            cmbTest.Items.Add(new { Tekst = "literka A", Wartosc= "A" });
            cmbTest.Items.Add(new { Tekst = "literka B", Wartosc= "B" });
            cmbTest.Items.Add(new { Tekst = "literka C", Wartosc= "C" });

Po naciśnięciu Button cmbTest ma ustawić się na pozycji na przykład z wartością "B".
Jak to zrobić?
PS
Działa
cmTest.SelectedIndex=1; ale jeśli nie znamy indeksu?


"Czego krzyczysz... co noga? A tamtemu głowę urwało i nie krzyczy, a ty o takie głupstwo." - JP

Pozostało 580 znaków

2015-06-28 17:59

Rejestracja: 5 lat temu

Ostatnio: 4 dni temu

0

Można to zrobić na przykład tak:

cmbTest.SelectedIndex = cmbTest.Items.IndexOf("B");
edytowany 7x, ostatnio: gogolon, 2015-06-28 19:17

Pozostało 580 znaków

2015-06-28 18:21

Rejestracja: 11 lat temu

Ostatnio: 2 lata temu

0

Nie działa.
... ?
W cmbTest ustawione są:
DisplayMember=Tekst
ValueMember=Wartosc

Proszę o pomoc.

PS
Rozwiązanie gogolona działa, ale tylko na prostym ComboBox z Collection.


"Czego krzyczysz... co noga? A tamtemu głowę urwało i nie krzyczy, a ty o takie głupstwo." - JP
edytowany 4x, ostatnio: mimirus, 2015-06-28 18:47

Pozostało 580 znaków

2015-06-28 19:13

Rejestracja: 6 lat temu

Ostatnio: 9 godzin temu

Lokalizacja: Warszawa

0

Coś w tym stylu

comboBox.SelectedItem = comboBox.Items.First(i=> i.Wartość == "x");
edytowany 2x, ostatnio: furious programming, 2015-06-28 20:11
nie ma First po Items - mimirus 2015-06-28 19:30

Pozostało 580 znaków

2015-06-28 22:41

Rejestracja: 11 lat temu

Ostatnio: 2 lata temu

0

Działa tak (http://madprops.org/blog/Bind[...]oBox-to-a-generic-Dictionary/):

        private void Form1_Load(object sender, EventArgs e)
        {
            var choices = new Dictionary<string, string>();
            choices["A"] = "Arthur";
            choices["F"] = "Ford";
            choices["T"] = "Trillian";
            choices["Z"] = "Zaphod";
            comboBox1.DataSource = new BindingSource(choices, null);
            comboBox1.DisplayMember = "Value";
            comboBox1.ValueMember = "Key"; 
        }

        private void button1_Click(object sender, EventArgs e)
        {
            comboBox1.SelectedValue = "F";
        }

:-)


"Czego krzyczysz... co noga? A tamtemu głowę urwało i nie krzyczy, a ty o takie głupstwo." - JP

Pozostało 580 znaków

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0