为什么我不能在 C# 中的 运行 时间将同一面板添加到流布局面板?

why can't I add the same panel to a flow layout panel at run time in C#?

我试过在运行时将同一个面板添加到流式布局面板,但似乎没有用,但是当我添加一个不同的面板时,它似乎工作得很好
这是为什么 ? 为什么我不能多次添加同一个面板?

您可以添加两次相同的面板类型,但不能添加相同的面板实例。这是因为每个控件必须能够存储自己的一组属性。尤其是它们的 LocationSize,还有 tab order 和 z-index 等等。文本框等控件必须能够具有不同的 Text 值。

var c = new MyUserControl();
flowLayout1.Controls.Add(c); 
flowLayout1.Controls.Add(c); // Does not work as expected.

但是

flowLayout1.Controls.Add(new MyUserControl()); 
flowLayout1.Controls.Add(new MyUserControl()); // Adds a second control as expected.