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 ?