Just a custom ListBox to hold any Control, made in C# to hold my UserControls :
using System.Windows.Forms;
public class GList : FlowLayoutPanel
{
public GList()
{
this.AutoScroll = true;
this.AutoSize = false;
this.FlowDirection = FlowDirection.TopDown;
this.Margin = this.Padding = new Padding(0, 0, 0, 0);
this.WrapContents = false;
this.BorderStyle = BorderStyle.FixedSingle;
}
public void Add(Control mCtrl)
{
base.Controls.Add(mCtrl);
}
public void Remove(string Name)
{
var c = base.Controls[Name];
base.Controls.Remove(c);
c.Dispose();
}
public void RemoveAt(int Index)
{
var c = base.Controls[Index];
base.Controls.Remove(c);
c.Dispose();
}
public void Clear()
{
while (base.Controls.Count > 0)
{
var c = base.Controls[0];
base.Controls.Remove(c);
c.Dispose();
}
}
protected override void OnPaint(PaintEventArgs e)
{
SetupAnchors();
base.OnPaint(e);
}
void SetupAnchors()
{
if (base.Controls.Count > 0)
{
for (int i = 0; i < base.Controls.Count; i++)
{
var c = base.Controls[i];
if (i == 0)
{
c.Anchor = AnchorStyles.Left | AnchorStyles.Top;
c.Width = this.Width - SystemInformation.VerticalScrollBarWidth - 10;
}
else
c.Anchor = AnchorStyles.Left | AnchorStyles.Right;
}
}
}
}