J'ai une application qui est sensé se mettre en plein écran via ce ptit code :
FullScreen est une variable globale de type boolean qui determine si l'application est en mode plein écran ou pas.
Le code est sensé etre très simple :
Pour passer en plein écran :
Je passe les toolbars, menus et status bar sur visible=false
Je passe la forme en maximized, pas de border et en TopMost
Pour revenir en mode fenêtré, je fais l'inverse.
Ce qui est étrange, c'est que la première fois que l'on lance le plein écran, ca marche.
Quand on ferme le plein écran, la statusbar ne réapparrait pas.
La deuxième fois qu'on lance le plein écran, et pour les fois suivantes aussi, la barre des tâches reste visible et la fermeture du plein écran fonctionne comme prévu.
Le debugging stetp by step ne me donne pas grand chose. Je commence à m'arracher les cheveux :<
//void ToggleFullScreen()
/*
* KNOWN ISSUES :
* + fullscreen works correcly the first time you launch it
* afterward, the taskbar stays on top
* + the first time you close the fullscreen mode, the statusbar
* doesnt come back
*/
void ToggleFullScreen()
{
if (!FullScreen)
{ //activate fullscreen
menuStrip1.Visible = false;
toolStrip1.Visible = false;
statusStrip1.Visible = false;
this.TopMost = true;
this.FormBorderStyle = FormBorderStyle.None;
this.WindowState = FormWindowState.Maximized;
CurrentPictureStyle = 1;
RefreshPictureStyle();
RefreshForm();
}
else
{
statusStrip1.Visible = true;
menuStrip1.Visible = true;
toolStrip1.Visible = true;
this.TopMost = false;
this.FormBorderStyle = FormBorderStyle.Sizable;
CurrentPictureStyle = 1;
RefreshPictureStyle();
RefreshForm();
}
FullScreen = !FullScreen;
}