2017-02-12 4 views
0

Я не настолько продвинутый в C#, и я делаю небольшие проекты, но теперь у меня есть проблема. Я делаю заставку. Все работает. Я делаю проект с меню, а в меню вы можете выбрать разные варианты: Шифрование, Сокращение и Выход. В каждой из них у меня есть кнопка «домой». Когда я нажимаю кнопку, в каждом меню каждый раз появляется этот заставка, и мне нужно ждать. Это раздражает. Как я могу настроить работу всего один раз (только когда я запускаю программу)?Заставка экрана 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

Это довольно глупо. Вы только когда-либо нуждаетесь в заставке, когда вам нужно скрыть тот факт, что ваш пользовательский интерфейс работает медленно. Единственное, что вам нужно скрыть, это то, что вы помещаете вызов 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

Вы также можете использовать WindowsFormsApplicationBase от Microsoft.VisualBasic.ApplicationServices пространство имен. Он доступен в проектах Winforms. Этот базовый класс обеспечивает простой способ добавления заставки в ваше приложение.

Смежные вопросы