Czekanie na naciśnięcie przycisku na formie

0

Witam,
Pisze funkcję która wygląda mniej więcej tak:

void foo()
{
   ZmienCosNaFormie();
   PoczekajAżUżytkownikNaciśnieJedenZPrzyciskow();
   ZrobCosJeszcze();
}

W jaki sposób można łatwo rozwiązać " PoczekajAżUżytkownikNaciśnieJedenZPrzyciskow(); " ? (Windows.Forms)

0

W aplikacji konsolowej:

Console.ReadLine();

W aplikacji okienkowej podczepiasz się pod zdarzenie:

Control.KeyPress

odpowiedniej kontrolki (moze to być główna forma) i przenosisz do metody obsługującej zdarzenie kod, który ma wykonać się po naciśnięciu przycisku. W troim przypadku:

ZrobCosJeszcze();

0

Chodzi o aplikacje okienkową.
Przeniesienie kodu raczej się nie sprawdzi, ponieważ funkcja ta jest wcześniej wywoływana w stylu

while (cos)
   foo();

Więc zdecydowanie chodzi o czekanie na reakcję.

(Wchodząc trochę bardziej w szczegóły, żeby nie było innych nieporozumień - chodzi o ocenianie pewnej liczby obrazków)

0

Czekanie na reakcję, czyli na zdarzenie, prawda?

0

Znaczy przyciski mają być na formatce i ma któryś kliknac? Stwórz prywatną zmienną boolowską, która oznacza, czy kliknięty (albo inną zmienną, która trzyma informację, który przycisk kliknięty, jeśli to ci do czegoś potrzebne, a pewno tak :P ) i w event'cie kliknięcia przycisków ustawiaj tę zmienną. W swojej funkcji whilem czekaj, aż zmienna dostanie odpowiednią wartość, a po jej odczytaniu resetuj do wartości zerowej/false/neutralnej jakieś, żeby przy następnym wywołaniu znowu było czekanie.
Proste rozwiązanie, ale jak się sprawdzi to czemu nie. Przy założeniu, że oczywście to wszystko musi być w jednej funkcji, a nie możesz sobie dalszych rzeczy, "ZróbCośJeszcze()" wydzielić do osobnej funkcji i wywoływać z eventa przycisków na któe przyciśnięcie masz czekać, co byłoby sensowniejsze, prostsze, ładniejsze.

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