Bonjour à tous,

j'ai besoin de remplir un ToolStripPanel avec des ToolStrip construites à la volée (en fonction d'un fichier xml pour la petite histoire).

Concretement je fais une boucle de ToolStripPanel.Controls.Add(ToolStrip) encapsulé entre un SuspendLayout et un ResumeLayout.

J'aimerait au final que dans mon ToolStripPanel, les ToolStrip soient positionnés dans l'ordre dans lequel je les ai ajouté.

Tout se passe bien lorsque je pose un breakpoint au niveau du ResumeLayout: les controles sont dans le bon ordre. A la sortie du ResumeLayout, les toolstrips sont mis dans un ordre completement aléatoire.

Quelqu'un aurait-il une explication?

Cordialement.

PS: Voila le code en version allegée:
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
toolBar.SuspendLayout();
toolBar.Controls.Clear();
 
foreach (String name in nameList)
{
	LogicalToolBar logicalBar = m_toolBarCollection[name];
	ToolStrip strip = new ToolStrip();
 
	strip.Name = name;
	strip.ImageScalingSize = new Size(24, 24);
 
	foreach (LogicalButton logicalButton in logicalBar.Buttons.Values)
	{
		ToolStripButton button = new ToolStripButton();
 
		button.Name = logicalButton.Name;
		button.Image = logicalButton.Image;
 
		strip.Items.Add(button);
	}
	toolBar.Controls.Add(strip);
}
toolBar.ResumeLayout(); // apres cette ligne la, l'ordre est completement modifié