読者です 読者をやめる 読者になる 読者になる

SourceChord

C#とXAML好きなプログラマの備忘録。最近はWPF系の話題が中心です。

スプラッシュウィンドウの出し方

プログラム C#

現在,こちら↓で紹介してるようなソフトを作っているます.
http://www.geocities.jp/sourcechord/software/index.html

で,ソフトを起動したときに出る,ロゴみたいなヤツ(スプラッシュウィンドウというらしい)を表示したくて,簡単な方法を試して見ました.

スプラッシュウィンドウを表示するためには,大きく分けて以下の二通りがあるようです.

  • 簡単な方法

 とりあえず,枠無しのダイアログとして表示して,sleep関数を用いて,数秒後に消す.

  • ちゃんとした方法

 上述の方法と同じ様に表示するが,その後,初期化処理が終わって,idle状態になったら消す.


今作っているソフトでは,初期化処理に時間掛からないので,初期化が終わるまで時間を計る必要性を感じず,簡単な方法を使ってみました.
てか,そもそも初期化に時間が掛かってないんだから,スプラッシュウィンドウの表示なんて必要ないのですよ・・・
むしろ,起動に余計な時間かかるだけだし・・
でも,カッコいいからやってみたかったのですw


で,以下スプラッシュウィンドウの表示方法

  1. まず,プロジェクト/windowsフォームの追加を選び,その中からwindowsフォームを追加する.
  2. そのフォームのFormBorderStyleプロパティをNone(枠無し表示)に変える.
  3. フォームにPictureBoxを貼り付けて,ロゴ画像とかを適用する.
  4. メインのフォームのLoadメソッド(デフォルトだとForm1_Loadメソッドとかかな・・)に以下のコードを記述.
//	スプラッシュウィンドウの表示
Form2 splash = new Form2();
splash.Show();
splash.Refresh();	//フォームが描画されなかった場合,この行を追加
System.Threading.Thread.Sleep(1500);
splash.Close();
  • 補足

Form2 ・・・ スプラッシュウィンドウ用のフォームのクラス

多くの解説サイトでは,上のソースのReflesh()の行は書いてなかったのですが,実行してみても,フォームが正確に描画されなかったので,一度再描画をさせるようにしました.

ちなみに自分の環境はVisualStudio.net2005を使っております.