2

我的表格中有一个表格布局面板。它有几行(充满控件):

label10   ---   textbox10     ----    label20
label11   ---    textbox11   ---    label21
label12    ---   textbox12   ---    label22
label13    ---   textbox13    ---   label23
label14    ---   textbox14    ---   label24

现在我想使用以下代码在表格中间添加新行:

myLayoutpanel.Controls.Add(label333, 0, 3);

myLayoutpanel.Controls.Add(textbox333, 0, 3);

myLayoutpanel.Controls.Add(label444, 0, 3);

它将在第 3 行之后添加一个新行。通常结果是真实的顺序:

label333   ---   textbox333   ---   label444

但对于某些行,它似乎是错误的:例如,如果添加发生在第 4 行之后:

label444  ---    label333   ---   textbox333     
4

2 回答 2

3

你不会发疯的。这是 .NET Framework 4.5 中引入的错误。请参阅参考资料

.NET 4.5 不兼容

System.Windows.Forms.TableLayoutPanel 行为更改 .NET 4.5 框架

于 2013-02-07T13:39:51.440 回答
0

我不知道您为什么会发生这种情况,因为您没有发布任何证据。但请检查此代码是否正确执行。我猜想你的代码没有按正确的顺序执行。

myLayoutpanel.Controls.Add(label333, 0, 3); 
Thread.Sleep(100); 
myLayoutpanel.Controls.Add(textbox333, 0, 3); 
Thread.Sleep(100); 
myLayoutpanel.Controls.Add(label444, 0, 3); 
于 2012-10-07T06:44:51.413 回答