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

line3 の後に新しい行が追加されます。通常、結果は正しい順序になります。

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 Framework

于 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 に答える