2017-02-12 235 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项目中可用。这个基类提供了简单的方法来将闪屏添加到您的应用程序中。