2017-02-12 274 views
0

我在c#中沒有那麼先進,而且我做了一些小項目,但是現在我遇到了問題。我做了一個啓動畫面。一切正常。我使用菜單製作項目,並在菜單中選擇不同的變體:加密,Decrpytion和退出。在每一個,我有一個「家」按鈕。當我按下按鈕時,在每個菜單中,每次都會出現閃屏,我需要等待。它很煩人。我怎樣才能設置工作一次(只是當我開始程序)?初始屏幕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()); 
    } 

還有一個問題。徽標出現後,程序最小化。有什麼建議?

+0

這很愚蠢。當你不得不隱藏你的UI開始很慢的事實時,你只需要*閃屏。你必須隱藏的唯一東西是你在你的代碼中放了一個Thread.Sleep()調用,並且它睡得太久。刪除該語句。現在刪除啓動畫面,因爲你不再需要它了。如果你想讓用戶知道你是誰,那麼添加一個Help + About對話框。 –

回答

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項目中可用。這個基類提供了簡單的方法來將閃屏添加到您的應用程序中。