Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Plein-écran : réaction bizarre ? [ Archives / Graphique ] (bubbathemaster)

lundi 1 mai 2006 à 15:14:26 | Plein-écran : réaction bizarre ?

bubbathemaster

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;
        }

lundi 1 mai 2006 à 19:08:05 | Re : Plein-écran : réaction bizarre ?

Lutinore

Administrateur CodeS-SourceS
Salut,




 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;
                this.WindowState = FormWindowState.Normal;
                CurrentPictureStyle = 1;
                RefreshPictureStyle();
                RefreshForm();
            }
            FullScreen = !FullScreen;
        }

lundi 1 mai 2006 à 19:18:24 | Re : Plein-écran : réaction bizarre ?

bubbathemaster

Effectivement, ca semble régler le problème, mais pas tout en fait.

Si on part d'une fenetre deja maximisé, le problème reste entier. Le hack consiste donc en un
                if (this.WindowState == FormWindowState.Maximized)
                    this.WindowState = FormWindowState.Normal;
Que j'ai rajouté au début de "activate fullscreen". Mais ce n'est pas très propre. De meme, si l'utilisateur etait en maximised, en quittant le fullscreen, il s'attend à revenir en maximised, mais à la place il revient en normal ...

Mais y'a du mieux :p


lundi 1 mai 2006 à 19:46:07 | Re : Plein-écran : réaction bizarre ?

bubbathemaster

Réponse acceptée !
void ToggleFullScreen()
{
            if (!FullScreen)
            {   //activate fullscreen
                
                //save settings before toggling fullscreen
                FullScreenOldState = this.WindowState;
                FullScreenOldPictureStyle = CurrentPictureStyle;

                if (this.WindowState == FormWindowState.Maximized)
                    this.WindowState = FormWindowState.Normal; //hack :<
                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;
                this.WindowState = FormWindowState.Normal;

                //restore settings
                CurrentPictureStyle = FullScreenOldPictureStyle;
                this.WindowState = FullScreenOldState;
                RefreshPictureStyle();
                RefreshForm();
            }
            FullScreen = !FullScreen;
}

Voilà comment c'est codé du coup : les règles utilisateurs de la fenetre (maximisé ou pas) sont stockées puis restaurées quand on quitte le fullscreen. Bref, ca reste "sale" je pense, mais en attendant ca marche.



Cette discussion est classé dans : fullscreen, écran, true, visible, false


Répondre à ce message

Sujets en rapport avec ce message

Question ComBox.Visible [ par imsse ] BOUJOUR, j'ai besoin de votre aide !! une question de logique, j'ai trois combox. ComboEnvironement est a visible = true ComboxChoix est a visible = Controler un thread en ne connaissant que son nom [ par fcolo ] Bonjour,je réalise une application (pour le fun) qui lance 100 thread en parallele.Chaque thread devra exécuter le même code.Dans ce code, je veux lan besoin d'aide pour un timers [ par DeathFeniX ] Bonjour, je suis en train de développé une application qui doit ouvrir un fichier texte, dans ce fichier texte, il y est repris des lignes de caracter Classe dérivée et override de méthode [ par gregory__forel ] Bonjour à tous,Je suis nouveau sur le forum, et aussi débutant en C#. Après pas mal de recherches qui m ont aidé à comprendre certains principes, je c [C#] False et True REPONDEZ SVP !!! [ par hoxid ] Bon eh bien bonjour je debute en C# et j'ai une question :Comment mettre une propriété a false ou a true a partir du code ? Exemple : x.enabled = "tru Treeview + panel (suite...) [ par sutcir ] bon j'suis nul j'ai de la confiture dans la tete, voila le code : private void treeView1_AfterSelect(obj faire un temporisateur [ par emna_bz ] Bonjour a tous Je veux arreter l'execution d'une page aspx pendant 1secondes ,j'ai essayé d'utiliser timer mais j'ai pas pu trouver un bon resultat.Ai Form1 et Form2 [ par emmanuel9 ] Bonjour à tous, J'ai deux Forms : form1 et form2 Dans form1 sur l'evenement d'un bouton je fais : this.visible = false ; Form2 a = new Form2() ; treeview [ par akira3 ] y ai un petit problème avec un treeview.chacun de mes nones ne peut etre cliqué qu'une seule fois.La première fois tt marche à merveille mais la secon Propriétés d'un formulaire figées... [ par PeTeRsLaStAr ] Bonjour. Voilà mon problème. Je travaillais en winform avec un formulaire avec des propriétés que j'avais paramétrées aupréalable (genre maximizeBox=f


Nos sponsors

Sondage...

CalendriCode

Novembre 2008
LMMJVSD
     12
3456789
10111213141516
17181920212223
24252627282930

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,172 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.