Dzień dobry. Obecnie piszę aplikację wykorzystując Winforms. Mam problem przy zrobieniu tych rzeczy:
- 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ć
Thread.Sleep(5000)
, gdyż poza TabControl mam zegarek (gs), 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.
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
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" ?