ComboBox w aplikacji okienkowej

0

Cześć,
poniżej zamieszczam kawałek kodu, moje pytanie brzmi następująco: chciałabym, gdy komenda if (comboBox1.SelectedItem.ToString() == "Statek powietrzny z silnikiem spalinowym") jest prawdziwa, program przeskakiwal i wykonywał polecenia zawarte w private void DataRecievedHandler(object sender, SerialDataReceivedEventArgs e). Czy ktoś mógłby mi podpowiedzieć jak to zapisać?

public TutorialCOM()
{
InitializeComponent();
//inicjalizacja zmiennej port z domyślnymi wartościami
port = new SerialPort();
//ustawienie timeoutów aby program się nie wieszał
port.ReadTimeout = 500;
port.WriteTimeout = 500;

        Opcje.Enter += new EventHandler(Opcje_Enter);
        port.DataReceived += new SerialDataReceivedEventHandler(DataRecievedHandler);

        moj_del1 = new Delegat1(WpiszOdebrane);

        comboBox1.Items.Add("Statek powietrzny z silnikiem spalinowym");
        comboBox1.Items.Add("Statek powietrzny z silnikiem elektrycznym");
        comboBox1.Items.Add("Szybowiec");
    }

    private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
    {
        if (comboBox1.SelectedItem.ToString() == "Statek powietrzny z silnikiem spalinowym")
        {

        }
    }
    private void DataRecievedHandler(object sender, SerialDataReceivedEventArgs e)
    {
          //TU sa przperowadzane pewne operacje, których wynikiem jest S, wyswietalny w MessageBox

            MessageBox.Show(S.ToString());
            System.Windows.Forms.MessageBox.Show("Aby wysłać bajt musisz ustanowić połączenie");
       
    }
1

Po prostu odpal sobie metodę, której potrzebujesz. Tak na szybko to może wyglądać:

 private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
    {
        if (comboBox1.SelectedItem.ToString() == "Statek powietrzny z silnikiem spalinowym")
        {
             DataRecievedHandler(this,  e);
        }
    }
2
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
    {
        if (comboBox1.SelectedItem.ToString() == "Statek powietrzny z silnikiem spalinowym")
        {
              port.DataReceived += new SerialDataReceivedEventHandler(DataRecievedHandler);
        }
        else
        {
              port.DataReceived -= new SerialDataReceivedEventHandler(DataRecievedHandler);
        }
    }

jak wybrane Statek powietrzny z silnikiem spalinowym to podpinasz się pod event a jak coś innego to odpinasz

0

Dziękuję za pomoc, zadziałało :D

Mam jeszcze pytanie, chciałabym wyświetlić S, które jest typu double, przy poniższym kodzie, wyskakuje mi komunikat: An unhandled exception of type 'System.FormatException' occurred in mscorlib.dll
Additional information: Nieprawidłowy format ciągu wejściowego.
Jak powinnam konwertować double to string? Zawarte w kodzie System.Convert.ToString widocznie nie działa.

            double S;
            S = Math.Sqrt((Sxwynik * Sxwynik) + (Sywynik * Sywynik));
            string result = System.Convert.ToString(S);

            MessageBox.Show(S.ToString());

p.s. jestem początkująca i nadmiar informacji z wyszukiwarek często mi nadal nic nie mówi :(

1

string result = s.ToString();
MessageBox.Show(result);

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.