Ferramentas de Usuário

Ferramentas de Site


dev_net:csharp:splash

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();
 }
dev_net/csharp/splash.txt · Última modificação em: 2018/05/14 21:37 (edição externa)