表格布局面板错误的列排序

时间:2012-10-07 05:50:07

标签: c# tablelayoutpanel

我的表单中有一个表格layoutpanel。它有几行(填充控件):

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);

它将在line3之后添加一个新行。 通常结果是按照正确的顺序:

label333   ---   textbox333   ---   label444

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

label444  ---    label333   ---   textbox333     

2 个答案:

答案 0 :(得分:3)

你不会发疯。这是.NET Framework 4.5中引入的错误。参见

中的参考文献

A .NET 4.5 incompatibility

System.Windows.Forms.TableLayoutPanel Behavior Change .NET 4.5 Framework

答案 1 :(得分: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);