2011-06-24 22 views
3

私のアプリケーションでは、最初の画面(1〜2分)をローンするのに時間がかかります。それはデータベースによって満たされるように非常に多くのコントロールを持っているので。スプラッシュ画面を追加するには

スプラッシュ画面が必要です。メインフォームが読み込まれている間はロードされます(おそらくプログレスバーが表示されます)。バックグラウンドの意味メインフォームをロードする必要があります(より良い表示にする)

メインウィンドウのみが読み込みを終了し、スプラッシュに通知し、スプラッシュが消えてメインが表示されます。

私はいくつかの方法で上記を達成しようとしましたが、成功しませんでした。

どれでもお手伝いできますか?

+0

のですか? – Vlad

+0

あなたはすばらしいGoogle検索を行うと、あなたは何か良い結果を得ることに驚かれるでしょう。 –

+0

私はGoogleでしたが、ほとんどの例ではスプラッシュを表示し、時間をかけてバックグラウンドを実行する時間を与えていません。 –

答えて

1
FormSplash splash = new FormSplash(); 

this.BeginInvoke(
    new MethodInvoker(
     () => 
     { 
      splash.Show(); 
     } 
    ) 
); 

// main form code here 

// at end of loading code 
splash.Close(); 

上記のコードは、メインフォームののForm_Loadに属します。

0

Show a splash screen at onceで議論されている良いアプローチがいくつかあります(実際これと私は別の質問が重複しているようです)。ちょうどメインフォームのロードを開始する前に、プログレスバーを持つウィンドウを作成します。

0

APIを使用して最善の方法とは、それが動作しません

SplashScreen splash = new SplashScreen("splashscreen.jpg"); 
    splash.Show(false); 
    splash.Close(TimeSpan.FromMilliseconds(2)); 
    InitializeComponent(); 
関連する問題