Да, вы можете поместить Panel в панель FlowLayoutoutPanel.Нет, вы не можете поместить элемент управления несколько раз в FlowLayoutoutPanel (на самом деле вы можете, но он отображается только один раз).
Но то, что вы могли бы сделать, это написать какой-то Factory-метод, который создаетновая панель с новыми кнопками / метками / другими элементами управления и т. д. каждый раз, когда вы вызываете ее, и добавляете эти новые экземпляры в вашу панель FlowLayout.Примерно так:
public class Form1
{
private Panel CreateNotificationPanel()
{
var p = new Panel { BackColor = Color.Red };
p.Controls.Add(new Button { Text = "Test" });
return p;
}
private void Form1_Load(System.Object sender, System.EventArgs e)
{
var flp = new FlowLayoutPanel { Dock = DockStyle.Fill };
flp.Controls.Add(CreateNotificationPanel());
flp.Controls.Add(CreateNotificationPanel());
flp.Controls.Add(CreateNotificationPanel());
this.Controls.Add(flp);
}
public Form1() { Load += Form1_Load; }
}
Другой (и, вероятно, лучший) подход заключается в создании UserControl, который содержит ваши кнопки / метки / и т.д.вместо использования панели и добавления всех элементов управления вручную.Просто создайте с помощью Designer и добавьте новые экземпляры UserControl в FlowLayoutPanel.