Pomozcie. Relacja combobox z radiobutton.

0

Witam wszystkich!!

Wlasnie postawnowilem odswiezyc sobie nieco wiadomosci odnosnie programowania ze studiow zeby napisac podreczne kalkulatrki ktore przydadza mi sie w pracy,a jestem inzynierem budownictwa. Napisalem wiec swoja pierwsza aplikacje w win forms.

Oczywiscie pojawil sie problem... no bo jakze inaczej. Bez lania wody przejde do konkretow...

Na zalaczonym obrazku widzicie forme... comboboxy i radio buttony. Caly program dziala bezblednie natomiast denerwuje mnie jedna rzecz:

http://img32.imageshack.us/i/snap1van.jpg/
(tylko istotny fragment programu z ktorym mam problem)

Ustawienie wartosci betonu np B15 powoduje ustawienie zmiennej bet = 15, ktorej pozniej uzywam do okreslenia zmiennej potrzebnej do dalszych obliczen, zmienna ta to fbd i zalezy od tego czy prety sa zebrowane czy gladkie.

I teraz problemy:

Po wyborze rodzaju betonu np. B15 (wtedy bet = 15) wybieram rodzaj pretow. Program wylicza wtedy fdb (zalezne od rodzaju betonu i pretow) dobrze. Natomiast gdy chce teraz przeliczyc fdb dla innego rodzaju betonu (np. B25 wybranego z listy) musze kliknac na "gladkie" i znowu na "zebrowane" zeby wartosc fdb (ktora ustalona jest w selceted index change dla radio buttonow) sie zmienila. Sprawdzalem ze zmiana betonu w comboboxie kazdorazowo dobrze ustala wartosc bet, natomiast problem jest z radiobuttonem ze trzeba go powtornie zaznaczyc zeby wartosc fdb sie zmienila - wtedy dziala wszystko ok.

Podam teraz czynnosci i problem: ustawiam beton B15, ustawiam prety zebrowane, wyliczam fdb, jest ok, zmienam beton na b25, obliczam, wartosc fdb sie nie zmienia, mimo ze bet sie zmienila. W metodzie radiobuttonow jest petla if (wartosc fdb zalezy od wartosci bet z comboboxu)

Po otwarciu programu musze zaznaczyc prety zebrowane zeby selected index change zadzialalo - co zrobic zeby po otwarciu programu domyslnie byly zaznaczone prety zebrowane i zeby to dzialalo.

Domyslam sie ze albo jest jakies wydarzenie dotyczace tych radiobuttonow lub tez cos trzeba dopisac w metodzie.

Zaznaczam ze to poczatek mojej przygody z c#, nie znam jeszcze dobrze nomenklatury, wiec prosze o wyrozumialosc.. :)

0

A gdzie cement... Tfu, kod programu?

0

CUT

0
nugget napisał(a)
        private void Oblicz_btn_Click(object sender, EventArgs e)
        {
            if (combo_stal.Text.Length == 0)
                return;
            else if (combo_beton.Text.Length == 0)
                return;
            else if (combo_srednica.Text.Length == 0)
                return;

        }

Nie sprawdzaj tych trzech warunków bo nie ma to większego sensu. Jeśli chcesz sprawdzać jaka jest długość zaznaczonego elementu, to wykorzystaj właściwość: SelectedText

Lista właściwości i metod klasy ComboBox:
[1] http://msdn.microsoft.com/en-us/library/system.windows.forms.combobox_members.aspx

0

Sluchajcie juz wszystko wykminilem sobie - w zlych miejscach mialem ify... wszystkie mam teraz w private void Oblicz_btn_Click(object sender, EventArgs e)

teraz juz tylko nie rozumiem jednej prostej sprawy... mianowicie ponizszy kod nie zaokragla mi liczby zaklad

                zaklad = alfa*(((fi / 4) * (fyd / (przyczepnosc*fbd)))/10);
                Math.Round(zaklad, 1);
                label_zaklad.Text = (zaklad.ToString()+"cm");
                return;

Wynik pojawia mi sie jako np. 128,23232323232323

zaklad to zmienna public double

0

W pracy zdążyłem tylko spojrzeć na ten Twój kod z trzeciego posta i zauważyłem, że jest 4 razy dłuższy niż powinien. Teraz chciałem mu się bliżej przyjrzeć, ale już go nie ma. No, ale to Twoja sprawa, w końcu utrudniasz życie tylko sobie.
Ale pisanie czegoś a potem usuwanie wydaje mi się dziwne. Nigdy tego nie zrozumiem.

Zdaje się, że o tym zapomniałeś:

zaklad = Math.Round(zaklad, 1);

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