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(); }