Zmiana okna z opóźnieniem

Zmiana okna z opóźnieniem
  • Rejestracja: dni
  • Ostatnio: dni
0

Dzień dobry. Obecnie piszę aplikację wykorzystując Winforms. Mam problem przy zrobieniu tych rzeczy:

  1. Opóźnienie przełączenia TabPage w TabControl.
    Chcę po wciśnięciu przycisku przejść do innego TabPage z opóźnieniem 5 sekund. Nie mogę tego zrobić
Kopiuj
Thread.Sleep(5000)

, gdyż poza TabControl mam zegarek (gⓂ️s), którego interwał jest ustawiony na 1 sekundę <- to jest w metodzie timer1_Tick. Jest możliwość, aby wykonać takie opóźnienie przełączenia bez zatrzymywania wyświetlania zegarka?
2) Poprawne wyświetlenie TabPage.

Kopiuj
private void zaplacMonetami(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.F1 && tabControl1.SelectedTab == Okno1)
            {
                tabControl1.SelectedTab = Okno2;
                tabControl1.SelectedTab = Okno3;
                Thread.Sleep(5000);
                tabControl1.SelectedTab = Okno4;
            }
        } 

Po części jest to związane z punktem pierwszym, ale mam problem z wyświetleniem poprawnie Okno2. Będąc w Oknie1 po wciśnięciu klawisza, chcę aby wyświetliło się Okno2 a po 5 sekundach okno 4. W kodzie zamieszczonym powyżej, gdyby nie było

Kopiuj
 tabControl1.SelectedTab = Okno3;

, to Okno2 wyświetliłoby się niepoprawnie (samo tło pod tekstem bez tekstu). Okno3 się nie wyświetla, jest zastosowane tylko do poprawności działania. Okno2 oraz Okno3 zawierają tylko Label rozmieszczony w innych miejscach. Nie wiem gdzie jest problem. Może trzeba stosować ten "trik" ?

T2
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 194
0

Wszystko wykonujesz na głównym wątku UI. Musisz skorzystać z background workera lub z innego wątku.

KL
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 156
0

jutro jak bede przy kompie podam Ci gotowe rozwiazanie kolo 16. A jak nie umiesz sie doczekac to windowswait albo formwait albo workerwait poszukaj sobie.

Sciagadz gotowy projekt. Podpinasz go pod swoj dodajesz .dll do referencji i procesy w tamto okno wrzucasz jaksonem czy jakos tak. I otowrzy nowa forme jak wszystko wczyta.

Przydatne rozwiazanie

Azarien
  • Rejestracja: dni
  • Ostatnio: dni
0
  1. Opóźnienie przełączenia TabPage w TabControl.
    Chcę po wciśnięciu przycisku przejść do innego TabPage z opóźnieniem 5 sekund.

Odpalasz Timer na 5 sekund i w zdarzeniu timera zmieniasz aktywną stronę.

chcę aby wyświetliło się Okno2 a po 5 sekundach okno 4

Odpalasz Timer a w zdarzeniu timera...

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.