0

フォームがあります。フォームには、すべてのフォームの表面にドッキングされた pictureBox があります。アプリを起動すると、表面が白いフォームが一瞬表示された後、画像が表示されます。

その 1 の白いフォームを取り除くにはどうすればよいですか?

4

3 に答える 3

1

form_Shownイベントで時間のかかる作業をしているようです。フォームのRefresh()メソッドをフォームの最初に表示されるイベントとして呼び出すと、最初にフォームが描画され、次に時間のかかる処理が実行されます。

于 2012-06-26T19:25:48.473 に答える
1

私にはスレッドの問題のように聞こえます。あなたの UI スレッドはあまりにも多くの作業を行っており、UI を頻繁に更新できないと思います。

次のすべてを実行します。

  • データ (画像を含む) の読み込みと処理がコンストラクターに配置されていないことを確認してください。
  • そのコードを適切な FormLoad() イベント ハンドラー メソッドに移動します。
  • 別のスレッドを実行するように、画像の読み込みを実装します。

この MSDN の記事でいくつかのアドバイスを見つけることができます

.NET 4.x バージョンで作業している場合は、Task Parallel Libraryを使用して、複数のスレッドでの作業を容易にすることもできます。

間もなく登場する .NET 4.5 では、さらに快適な await および asyc キーワードも提供されます: Async および Await を使用した非同期プログラミング

于 2012-06-26T12:15:39.253 に答える
1

ピクチャボックスに画像をロードする時期については述べていません。ただし、 Form_Load イベントの最後または Form_Shown イベントでピクチャボックスを表示できるようにします。

于 2012-06-26T10:57:25.690 に答える