0

読み込みに時間がかかり、画面がちらつく mdi フォームがあります。ちらつきを防ぐために、ここで説明されているように sendmessage API を使用しました コントロールとその子の描画を一時停止するにはどうすればよいですか? . アプリのメインフォームの描画を一時停止します。

これを行うと、さまざまな奇妙な動作に遭遇したことを除いて、正常に機能します。

  • ユーザーが背後に Windows エクスプローラー インスタンスを持っていて、フリーズ中にマウスを動かすと、Windows エクスプローラーの左側のウィンドウの一部が画面に表示され始めます。
  • ペイントのフリーズ中にユーザーがマウスをクリックすると、アプリがフォーカスを失うことがあります。

メインフォームをフリーズしているからですか?

MDI フォームのロード中に副作用なしで描画を防ぐにはどうすればよいでしょうか?

4

1 に答える 1

0

多くの場合、一時停止/再開は素晴らしいです。

ただし、フォームを読み込む場合は、描画を通常どおり続行しますが、完全に読み込まれるまで透明度を使用してフォームを非表示にします。

Form f = new Form { Opacity = 0.01 };
f.Show();
f.BeginInvoke( new Action(() => f.Opacity = 0.99 ));
于 2012-10-08T16:34:59.653 に答える