2017-02-12 32 views
0

私はC#で上級者ではなく、私は小さなプロジェクトを作っていますが、今は問題があります。私はスプラッシュスクリーンを作ります。すべてが動作します。私はメニューを使ってプロジェクトを作っています。メニューでは、さまざまなバリエーションを選択することができます:Encryption、Decrpytion、Exit。それぞれには、私は "ホーム"ボタンがあります。私がボタンを押すと、すべてのメニューで、毎回スプラッシュ画面が表示され、私は待つ必要があります。気に障る。どのように私はちょうど(私はプログラムを起動すると)1回だけ動作するように設定することができますか?スプラッシュ画面C#

using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using System.Windows.Forms; 
using Soft.Properties; 
using System.Threading; 

namespace Soft 
{ 
    public partial class Meniu : Form 
    { 
    public Meniu() 
    { 
     Thread t = new Thread(new ThreadStart(SplashStart)); 
     t.Start(); 
     Thread.Sleep(5000); 

     InitializeComponent(); 

     t.Abort(); 

    } 

    public void SplashStart() 
    { 
     Application.Run(new LOGO()); 
    } 

もう1つ質問があります。ロゴが表示されたら、プログラムは最小限に抑えます。何かアドバイス?

+0

これはむしろ愚かです。 UIの開始が遅いという事実を隠さなければならないときは、スプラッシュスクリーンしか必要としません。あなたが隠さなければならない唯一のことは、あなたのコードにThread.Sleep()コールを入れて、それが完全に長すぎるということです。そのステートメントを削除します。あなたがもうこれを必要としないので、スプラッシュ画面を削除してください。ユーザーにあなたが誰であるかを知りたければ、「ヘルプ+バージョン情報」ダイアログを追加します。 –

答えて

0

プログラム起動時にのみスプラッシュ画面を表示したい場合は、Program.csを開き、カウンターを静的クラスプログラムセクションに追加してカウントフォームを実行します。

public static int counter = 0;

そして、このようなあなたのコードを編集します

public Meniu() 
     { 
      InitializeComponent(); 
      Program.counter++; 
      if (Program.counter == 1) // If first run minimize and show splash screen 
      { 
       this.WindowState = FormWindowState.Minimized; 
       Thread t = new Thread(new ThreadStart(SplashStart)); 
       t.Start(); 
       Thread.Sleep(5000); 
       t.Abort(); 
      } 
      else // If not first run 
      { 
       this.WindowState = FormWindowState.Normal; 
      } 
     } 

     public void SplashStart() 
     { 
      Application.Run(new LOGO()); 
     } 
0

あなたは時に初めて打ち上げ実行時フラグを設定し、次回の打ち上げのタイムスタンプと、アプリケーションが実行されていることを示すためにすることができ、スプラッシュ画面を表示する必要はなく、異なる機能間で切り替えるだけです。

0

WindowsFormsApplicationBaseMicrosoft.VisualBasic.ApplicationServices名前空間からも使用できます。これはWinformsプロジェクトで利用可能です。この基本クラスは、アプリにスプラッシュスクリーンを追加する簡単な方法を提供します。

関連する問題