为什么我不能在 C# 中的 运行 时间将同一面板添加到流布局面板?
why can't I add the same panel to a flow layout panel at run time in C#?
我试过在运行时将同一个面板添加到流式布局面板,但似乎没有用,但是当我添加一个不同的面板时,它似乎工作得很好
这是为什么 ?
为什么我不能多次添加同一个面板?
您可以添加两次相同的面板类型,但不能添加相同的面板实例。这是因为每个控件必须能够存储自己的一组属性。尤其是它们的 Location
和 Size
,还有 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.
我试过在运行时将同一个面板添加到流式布局面板,但似乎没有用,但是当我添加一个不同的面板时,它似乎工作得很好
这是为什么 ?
为什么我不能多次添加同一个面板?
您可以添加两次相同的面板类型,但不能添加相同的面板实例。这是因为每个控件必须能够存储自己的一组属性。尤其是它们的 Location
和 Size
,还有 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.