2011-06-22 7 views
3

私はWinフォームプロジェクトを行っています(C#)。そのプロジェクトでは、私は歓迎の画面を追加するつもりです。だから私は歓迎の画面を作成しました。しかし、それはいくつかのminituteを表示し、自動的にログイン画面を閉じて開きたいと思う。Winformにようこそ画面を表示するには?

System.Threading.Thread.Sleep(1500); 
      LogIn n = new LogIn(); 
      n.Show(); 

このコードを表示、ロード、アクティブ化するという形式で試してみます。使用しないでください。誰も何をすべきか分かっていますか?スプラッシュ画面を作成する方法を説明する

My welcome screen -

+0

数分ですか?アンインストーラを忘れないでください。 –

+3

[C#Splash Screen Problem]の重複が可能です(http://stackoverflow.com/questions/392864/c-splash-screen-problem) –

答えて

4
+0

ありがとうございます。 Iamを使用してそれを使ってSplach Screenを表示します。スレッドth =新しいスレッド(新しいThreadStart(DoSplash)); th.Start(); Thread.Sleep(3000); th.Abort(); Thread.Sleep(1000); – Sagotharan

2

Program.csにスプラッシュ画面の行を追加します。スプラッシュ画面でタイマーを実行し、フォームを閉じます。私の意見で

プライベート静的な無効メイン() {

 Application.EnableVisualStyles(); 

     Application.SetCompatibleTextRenderingDefault(false); 
     Application.Run(new FSplash()); // This is your splash form << added 
     Application.Run(new FMain()); 
    } 
1

には、.NETアプリケーションの.NETでのスプラッシュ画面を作成することはできません。

の目的をスプラッシュスクリーンは、アプリケーションがロードされ、開始され、初期化されるまで、長い待機時間からユーザを逸らすことである。

.NETアプリケーション自体には既に起動時間があるため、この時間内にはスプラッシュ画面はありません。

私のソリューション

だから私のアプリケーションでは、私はそれを次のようにやっている:

  1. 小さな、小さなネイティブC++アプリケーションを作成します。
  2. C++アプリケーションの起動時に、最上部のビットマップ(境界線のないウィンドウ)を表示します。
  3. C++アプリケーションが実際の.NETアプリケーションを起動できるようにします。
  4. .NETアプリケーションが起動し、起動および初期化が完了すると、C++アプリケーションに終了するよう指示されます。これはIPCによって行われます。

プロセス間通信は次のように行われます:

  1. C++アプリケーションでは、一時ファイルを書き込みます。
  2. .NETアプリケーションを呼び出すと、ファイル名がコマンドラインパラメータとして渡されます。
  3. C++アプリケーションは、ファイルが存在するかどうか定期的にポーリングします。
  4. .NETアプリケーションは、スプラッシュ画面を非表示にするとすぐにファイルを削除します。
  5. C++アプリケーションは、一時ファイルがなくなるとすぐに存在します(またはタイムアウトが発生します)。

これは100%完璧ではないことが分かっていますが、これは何年も前に.NETアプリケーションを開発して以来、私が思いついた最も適切なソリューションでした。

+1

彼はC++を知っているときにこれを行うことができます。 –

+3

あなたの意見は間違っているでしょう。 .NET Framework内の任意の言語でスプラッシュスクリーンを作成する簡単なタスクです。あなたのアプローチは過度のものであり、まったく間違っています。 –

+1

あなたのバランスのとれたコメントのために@Ramhoundに感謝します。 –

関連する問題