Zdravím,
Mam takový problém... V C# dělám deskovou hru a rozhodl jsem se ji udělat bez vláken s pomocí Application.DoEvents(), takže když hraje počítač, aby se postupně okno vykreslovalo a mohl jsem klikat na buttony ap. Vše funguje kromě jedné zapeklité věci - když kliknu na button, který pouští počítače na řadu (odpauzování hry), tak musím do formuláře jednou kliknout, aby začal opět reagovat na kliky buttonu a menu a všechno. Ovšem vykreslování funguje - vidím, jak postupně počítač hraje, tudíž aplikace živá je...
událost kliknutí vypadá asi takto:
private void PlayStop_MouseClick(object sender, MouseEventArgs e)
{
if (Pause)
{
Pause = false;
PlayStop.Invalidate();
Application.DoEvents();
PlayerMove();
}
else
{
Pause = true;
PlayStop.Invalidate();
}
}
---->PlayerMove zavolá rekurzivní funkci a počítač hraje, dokud hra neskončí nebo dokud ji zase nezapauzuji...
Takže po kliknutí zůstane kurzor s obrázkem ruky (takový, jaký je stav kurzoru, když jsem nad buttonem normálně) ať už se pohnu kamkoliv a žádný jiný button nereaguje na najeti, menu - prostě nic... Až když jednou kliknu do formu, kurzor a všechno začne reagovat jak má... confused smiley
Nevíte někdo prosím co s tím?