IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Forms Discussion :

FormBorderStyle, FixedToolWindow, bug ?


Sujet :

Windows Forms

  1. #1
    Membre Expert

    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2007
    Messages
    3 530
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 530
    Par défaut FormBorderStyle, FixedToolWindow, bug ?
    Bonjour,

    Depuis hier, je me creuse la tète pour résoudre un problème assez étrange et je viens par hasard de trouver la solution. J'ai quand même besoin d'un avis extérieur pour m'assurer que je ne dis pas de bétise.

    Pour l'exemple, créer un nouveau projet tout simple avec C# 2008.
    Ajouter un nouveau formulaire et mettez sa propriété FormBorderStyle à FixedToolWindow.
    Sur le formulaire de départ, mettez un bouton pour appeler le formulaire 2 avec un ShowDialog().
    Executer le programme !
    Cliquer sur le bouton pour afficher le second formulaire en modal.
    Ensuite, utiliser la combinaison de touches alt+tab pour faire défiler les applications.
    Ici, après 2, voir 3 activations ainsi réalisées, mon application disparait de la liste des applications dans le alt-tab.
    Il faut alors cliquer sur son icône dans la barre des taches pour la réactiver dans cette liste.

    Mais mieux encore ... Regardez le code suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
     
    namespace WindowsFormsApplication1
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
     
            private void button1_Click(object sender, EventArgs e)
            {
                using(Form frm = new Form())                
                {
                    TextBox lb = new TextBox();
                    lb.Parent = frm;
                    lb.Location = new Point(10, 10);
                    lb.Text = "ddddddddd";
                    frm.FormBorderStyle = FormBorderStyle.FixedToolWindow;
                    frm.ShowDialog();
                }
            }
     
            private void button2_Click(object sender, EventArgs e)
            {
                using (Form frm = new Form2())
                {
                    frm.ShowDialog(); // FormBorderStyle est défini dans les propriétés
                }
            }
        }
    }
    Sur le button1, en définissant par code le FormBorderStyle, je n'ai pas le problème.

    ALors, à votre avis, quelle est la différence ?

  2. #2
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Par défaut
    salut

    j'ai essayé ta manip, à savoir créer un formulaire fixedToolwindow et l'afficher via un bouton et ShowDialog();

    je fais plein de alt-tab... aucun soucis

    Pour info, je suis en Framework 2.0 et sous XP SP2

    The Monz, Toulouse

    EDIT:

    Si il y a une différence, regardes le code du desginer

  3. #3
    Membre Expert

    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2007
    Messages
    3 530
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 530
    Par défaut
    J'ai oublié de préciser

    frm.ShowInTaskbar = false;

    Le code de test plus complet:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
            private void button1_Click(object sender, EventArgs e)
            {
                using(Form frm = new Form())                
                {
                    TextBox lb = new TextBox();
                    lb.Parent = frm;
                    lb.Location = new Point(10, 10);
                    lb.Text = "ddddddddd";
                    frm.FormBorderStyle = FormBorderStyle.FixedToolWindow;
                    frm.ShowInTaskbar = false;
                    frm.ShowDialog();
                }
            }
    A tester en commentant ou décommentant la ligne
    frm.FormBorderStyle = FormBorderStyle.FixedToolWindow;

    pour voir la différence de comportement.

    Attention, il ne faut pas cliquer sur la fenêtre entre différents alt-tab pour activer l'application.

  4. #4
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Par défaut
    ok ca marche.. enfin, ca fait effectivement le comportement que tu décris...

    Maintenant, pourquoi ?

    bonne question

    The Monz, Toulouse

    EDIT : Chez moi ca fonctionne dans les 2 cas (j'y comprends plus rien)

    The Monz, Toulouse

  5. #5
    Membre Expert

    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2007
    Messages
    3 530
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 530
    Par défaut
    Ca me rassure, je suis pas fou.
    Je précise que je suis en SP3 et que la machine de test aussi mais que j'i essayé sur un SP2 et que ça fait pareil. Donc, pas un problème de service pack.

    Si quelqu'un a une explication, je prends volontiers.

  6. #6
    Membre très actif Avatar de fally
    Homme Profil pro
    Développeur .Net / BI
    Inscrit en
    Novembre 2007
    Messages
    966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Bénin

    Informations professionnelles :
    Activité : Développeur .Net / BI

    Informations forums :
    Inscription : Novembre 2007
    Messages : 966
    Par défaut
    Salut à tous!
    J'ai pas essayé ton code (pas d'outils sous la main); mais je me fie à TheMonz
    Je pense que le nom "FixedToolWindow" est bien évoquateur et la réponse se trouve derrière cette question "qu'est-ce qu'un ToolWindow?"

  7. #7
    Membre Expert

    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2007
    Messages
    3 530
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 530
    Par défaut
    "qu'est-ce qu'un ToolWindow?"
    Bonne question ! Mais quoi ce soit, c'est une Form quand même ...
    Et si l'application disparaissait de la liste des applications du ALT-TAB dès que cette Form est affichée, je comprendrais, mais là, l'application est disponible au premier passage, parfois au second, puis disparait ensuite. Le comportement est tout de même étrange.

    Si j'étais meilleur en anglais, j'aurais volontiers posé la question sur un forum microsoft dédié à C#.

  8. #8
    Membre très actif Avatar de fally
    Homme Profil pro
    Développeur .Net / BI
    Inscrit en
    Novembre 2007
    Messages
    966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Bénin

    Informations professionnelles :
    Activité : Développeur .Net / BI

    Informations forums :
    Inscription : Novembre 2007
    Messages : 966
    Par défaut
    Peut-être un problème du à Xp! t'as Vista pour essayer?

  9. #9
    Membre Expert

    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2007
    Messages
    3 530
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 530
    Par défaut
    sous vista, comportement légèrement différent: l'application n'est jamais visible dans le ALT-TAB ...

  10. #10
    Membre Expert

    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2007
    Messages
    3 530
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 530
    Par défaut
    Le mystère restera donc entier.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 06/03/2003, 16h37
  2. Bug new build ??
    Par rgarnier dans le forum XMLRAD
    Réponses: 4
    Dernier message: 31/01/2003, 10h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo