Ir para o conteúdo

Criar um SplashScreen

Este tutorial tem o objectivo de ensinar a criar um SplashScreen para uma aplicação em C#, recorrendo ao uso de threads.

  • Para começar deve-se criar um novo projecto C# Windows Application (File -> New -> Project ->Visual C# Projects -> Windows Application). Dar um nome ao projecto, por exemplo "SplashScreen".
  • Adicionar outro formulário ao projecto. Para isso, é preciso ir a Project menu e clicar em Add Windows Form. Dar o nome de "Splash.cs" e clicar em OK.
  • No form criado, colocar a FormBorderStyle como None, a StartPosition como CenterScreen, o ShowInTakbar como false. Ir à ToolBox e arrastar uma PictureBoxm, para inserir uma imagem (em alternativa, pode ser feito através do BackgroundImage do formulário). Depois de inserir a imagem, colocar a propriedade do formulário TransparencyKey com a cor de fundo da imagem inserida.
  • Para que o SplashScreen funcione, é necessário inicializar antes do Form1. Para isso é preciso algum código ao Form1. Ir para o método Form1() (este método é o construtor da class e é executado antes de qualquer outro método). Agora basta adicionar o seguinte código, depois da chamada do método InitializeComponent:
    // declarar uma thread e dizer que executa o método DoSplash
    Thread th = new Thread(new ThreadStart(DoSplash));
    // a thread iniciada é executada juntamente com a aplicação principal
    th.Start();
    // prevenir que o form principal aparece antes que a thread acabe (pausa de 3 seg = 3000 ms)
    Thread.Sleep(3000);
    // todas as variáveis declaradas ou instanciadas pela thread são eliminadas
    th.Abort();
    // assegurar que a thread é finalizada, colocar uma pausa de 1 segundo para "limpar"
    Thread.Sleep(1000);
    
  • Por fim, adicionar o seguinte método DoSplash() no final do código do Form1:
    private void DoSplash()
    {
        // declarar uma instância para a class Splash
        Splash sp = new Splash();
        // tornar o formulario visivel
        sp.ShowDialog();
    }