ComBox i TextBox

0

Witam, własnie zaczalem swoja przygode z C#. I pojawil sie problem. Dodalem sobie ComBoxa w Form1 i dopisalem liste materiałów poprzez fukcje edit items w Comboxie. Pod spodem dolozylem textboxa ktorego ustawilem przez wlasciwosci na "read only" zeby uzytkownik nie mial dostepu do tego po odpaleniu apki. I teraz moje pytanie, jak zrobic aby w textboxie pojawialy sie pewne wartosci w zaleznosci od tego co uzytkownik wybierze z listy Comboxa. Powiedzmy ze ze uzytkownik wybiera z listy comboxa "piasek" a w textboxie pojawia sie "50zl", a jezeli wybierze żwir z listy to w textboxie pojawi sie "100zl". Proszę o jakiakolwiek pomoc.

1

ComboBox ma właściwość DisplayMember i ValueMember. Ostatnio był podobny temat tylko że z dniami tygodnia ComboBox i SelectedValue podczas uruchomienia programu
Zrób tak jak tam jest.

0

Tylko ze w tamtym przykladzie aplikacja wyrzuca wiadomosc z liczba powiazana z danym "combosource.Add", a ja chcialbym zeby w zaleznosci od tego co uzytkownik wybierze z listy w Comboxie , wyswietlala sie odpowiednia przypisana wartosc w textboxie
ex: uzytkownik rozwija w comboxie 1-Stal węglowa ( <150HB, <490MPa ), w textboxie wyswietla sie wartosc 150.
Da sie cos takiego zrobic?


 private void Form2_Load(object sender, EventArgs e)
        {

            Dictionary<int, string> comboSource = new Dictionary<int, string>();
            
            comboSource.Add(1, "Stal węglowa ( <150HB, <490MPa )");
            comboSource.Add(2, "Stal węglowa ( 150÷235HB, 490÷780MPa )");
            comboSource.Add(3, "Stal węglowa ( 235÷290HB, 780÷980MPa )");
            comboSource.Add(4, "Stal węglowa ( 290÷350HB, 980÷1170MPa)");
            comboSource.Add(5, "Żeliwo szare ( <150HB, -)");
            comboSource.Add(6, "Żeliwo szare ( 150÷200HB, -)");
            comboSource.Add(7, "Żeliwo szare (200÷250HB, -)");
            comboSource.Add(8, "Brąz ( 40÷160HB,  140÷550MPa)");
            comboSource.Add(9, "Mosiądz ( 40÷150HB, 150÷400MPa)");
            comboSource.Add(10, "Miedź (16-100HB, 200÷250MPa)");
            comboSource.Add(11, "Aluminnium( 60÷120 HB, Rm 180÷260MPa )");
            rodzajeMat.DisplayMember = "Value";
            rodzajeMat.ValueMember = "Key";
            rodzajeMat.DataSource = new BindingSource(comboSource, null);
        }

 private void rodzajeMat_SelectedIndexChanged(object sender, EventArgs e)
        {

        
        }

        private void materialTekstBox_TextChanged(object sender, EventArgs e)
        {
        





 
1

Ogarnij jakiś tutorial.

            comboSource.Add(150, "Stal węglowa ( <150HB, <490MPa )"); //zamień tego integera na wartość która ma się wyświetlić
            comboSource.Add(200, "Stal węglowa ( 150÷235HB, 490÷780MPa )");
            itp

potem dajesz

 private void rodzajeMat_SelectedIndexChanged(object sender, EventArgs e)
        {
             tekstBox1.Text = comboBox1.SelectedValue.ToString();
        }

Ponieważ kluczem w Dictionary jest integer, to jeśli w drugim przypadku "Stal węglowa ( 150÷235HB, 490÷780MPa )" chcesz aby wyświetliło się w textboxie 150÷235HB musisz zamienić klucz w Dictionary też na string, czyli będzie coś takiego:

Dictionary<string, string> comboSource = new Dictionary<string, string>();
 
            comboSource.Add("150HB", "Stal węglowa ( <150HB, <490MPa )");
            comboSource.Add("150÷235HB", "Stal węglowa ( 150÷235HB, 490÷780MPa )");
            comboSource.Add("235÷290HB", "Stal węglowa ( 235÷290HB, 780÷980MPa )");

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