6

ラベルとテキスト ボックスを動的に入力する TableLayoutPanels をホストする 2 つのタブ ページがあります。最初のものは 96 個のラベルと 96 個のテキスト ボックスを取得し、そのちらつきは許容範囲内か許容範囲内なので、わざわざ SuspendLayout/ResumeLayout のペアを追加しませんでした。

ただし、2 番目のものは 96 個のラベルと 288 個のテキストボックスを取得し、そのペイント/ちらつきは耐えられません。IOW、192 のコントロールは問題ないようですが、384 は明らかにそうではありません。

コントロールを動的に作成する前に SuspendLayout を呼び出してから、finally ブロックで ResumeLayout を呼び出していましたが、それらを削除しました。最初の tabPage/TLP と同様に、ちらつきは許容範囲内です。

この加算による減算が機能するのはなぜですか?

4

2 に答える 2

9

このスレッドに記載されている 2 つの方法を試すこともできます。彼らが難解すぎないことを願っています:

https://stackoverflow.com/a/15020157/1307504

このメソッドは、実際にレイアウトを一時停止して再開します。しかし、電話することを決して忘れてはなりませんEndControlUpdate()

私が作成している一般的なコントロールでこれを使用します。サスペンドとレジュームのレイアウトをすべて試してみました。それは私が思ったようには機能しませんでした。

于 2013-03-13T12:37:07.737 に答える