Bonjour,
J'ai un SplitContainer dans mon appli. La partie de gauche est réservée à la liste de mes clients, et la partie de droite doit afficher un client. J'aimerais pouvoir gérer les fenêtres multiples dans la partie de droite.
J'ai regardé dans le sens des fenêtres Mdi et j'arrive à un bon résultat lorsque je n'ai pas de SplitContainer. Voici mon code de test :
Maintenant, j'aimerais gérer ces fenêtres multiples dans le SplitContainer et je n'y arrive pas. Voilà mon code :
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
33
34
35
36
37
38
39
40
41
42
43
44
45 namespace MdiTest { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void newToolStripMenuItem_Click(object sender, EventArgs e) { Form2 f = new Form2(); f.MdiParent = this; f.Show(); } private void cascadeToolStripMenuItem_Click(object sender, EventArgs e) { LayoutMdi(MdiLayout.Cascade); } private void hTileToolStripMenuItem_Click(object sender, EventArgs e) { LayoutMdi(MdiLayout.TileHorizontal); } private void vToolStripMenuItem_Click(object sender, EventArgs e) { LayoutMdi(MdiLayout.TileVertical); } private void reduceAllToolStripMenuItem_Click(object sender, EventArgs e) { foreach (Form f in this.MdiChildren) f.WindowState = FormWindowState.Minimized; } private void closeAllToolStripMenuItem_Click(object sender, EventArgs e) { foreach (Form f in this.MdiChildren) f.Close(); } } }
Création de la fenêtre cliente (Si je ne mets pas les 3 et 4ème lignes, ma form ne s'affiche pas) :
Ensuite, le problème est que mes fenêtres ne sont pas dans le tableau MainForm.MdiChildren car il a une taille de 0.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 MyForm l_frm = new MyForm(); l_frm.MdiParent = this; l_frm.Parent = splitContainer.Panel2; splitContainer.Panel2.Controls.Add(l_frm); l_frm.Show();
Merci d'avance pour votre aide. Si vous voyez d'autres voies possibles, les idées sont les bienvenues...
Partager