Bien sûr ... Ajouter WindowsForm
à votre projet, appelez-le SplashImageForm
. Ajoutez le contrôle PictureBox
et ajoutez l'image que vous voulez. Redimensionner le formulaire, définissez ces propriétés SplashImageForm
:
FormBorderStyle - None
ShowInTaskBar - false
StartPosition - CenterScreen
Ensuite, vous voulez montrer que la forme avant Form1 et fermer après le délai a expiré ... Comme si par exemple:
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
SplashImageForm f = new SplashImageForm();
f.Shown += new EventHandler((o,e)=>{
System.Threading.Thread t = new System.Threading.Thread(() =>
{
System.Threading.Thread.Sleep(2000);
f.Invoke(new Action(() => { f.Close(); }));
});
t.IsBackground = true;
t.Start();
});
Application.Run(f);
Application.Run(new Form1());
}
EDIT Maintenant, il y a un nouveau thread qui bloque sur System.Threading.Thread.Sleep(2000)
pendant 2 secondes, et le thread principal est autorisé à bloquer sur Application.Run(f)
comme il est censé, jusqu'à ce que le SplashImageForm
ne soit pas fermé. Ainsi, l'image est chargée par le thread principal et l'interface graphique est réactive.
Lorsque le délai expire, la méthode Invoke()
est appelée, de sorte que le thread principal qui est le propriétaire du formulaire le ferme. Si ce n'était pas le cas, l'exception Thread Thread serait lancée.
Maintenant, l'image est affichée pendant 2 secondes, et après que Form1 est montré.
Vous voulez dire comme un écran de démarrage? – BoltClock
Vous cherchez à créer un écran d'accueil. Vérifiez cela: http://www.google.com/search?gcx=w&sourceid=chrome&ie=UTF-8&q=c%23+splash+screen –