Comment pouvons-nous montrer l'image de démarrage lorsque mon application démarre, comme tous les logiciels, comme Photoshop, vs mot etc ?? J'ai prévu de le coller sur le formulaire et de le montrer mais il y a une barre bleue qui a des contrôles etc .. aucune idée/Affichage Démarrage Image
Répondre
Voulez-vous réellement un écran d'accueil? Il y a beaucoup d'exemples sur le net, par exemple: http://www.codeproject.com/KB/cs/prettygoodsplashscreen.aspx
Vous pouvez supprimer toutes ces barres bleues etc, via this.FormBorderStyle = FormBorderStyle.None
dans votre Form_Load()
.
Donc, si je vous, je créer une forme de taille spécifique, définissez les options suivantes dans Form_Load()
ou directement dans le code généré par le concepteur:
this.FormBorderStyle = FormBorderStyle.None;
this.StartPosition = FormStartPostition.CenterScreen;
Maintenant vous avez un écran d'accueil Comme beaucoup d'autres applications - tout ce que vous avez encore à faire est d'écrire le code pour tout ce qui le rend visible ou non, etc etc
Excellente suggestion. Malheureusement, écrire le code pour le rendre visible et tout le reste est la partie la plus difficile! –
et le problème est que l'écran n'est pas transparent il y a une couleur à l'arrière j'utilise gif –
Ecrivez-vous une application WinForms ou WPF? Vous devrez définir différentes propriétés en fonction du type que vous écrivez. Si vous écrivez une application WPF, vous pouvez ajouter les attributs WindowStyle = "None" et ResizeMode = "NoResize" à l'élément de niveau supérieur Window dans XAML. Le premier supprimera la barre de titre avec les boutons minimiser, redimensionner et fermer tandis que le second supprimera la bordure autour du formulaire. Maintenant, vous avez un formulaire sans bordure que vous pouvez modifier pour créer un écran de démarrage si vous voulez ou simplement ajouter votre image de démarrage. Si vous ne voulez pas que votre formulaire par défaut apparaisse, vous devez ajouter les attributs Background = "Transparent" et AllowsTransparency = "True". Le premier paramètre la couleur d'arrière-plan sur transparent alors que le second permet à votre programme d'avoir l'air transparent. Maintenant, vous pouvez ajouter n'importe quelle image dans n'importe quelle forme, et l'utilisateur ne verra que cette image au démarrage du programme.
P.S. Assurez-vous de charger un autre formulaire une fois que l'écran de démarrage a été affiché pendant un certain laps de temps ou une fois que les méthodes supposées "charger" le contrôle de retour.
Assez simple!
Si vous cherchez le moyen le plus simple, vous pouvez utiliser l'excellent support intégré de .NET Framework pour les écrans de démarrage. Vous devrez mettre de côté toutes les peurs irrationnelles que vous pourriez avoir à inclure quelque chose avec le nom "Visual Basic" dans une application C#, mais cela vous évitera d'avoir à rouler votre propre solution personnalisée et vous inquiéter de choses comme multi -threading, invocation, et tout ça. Tout se résume à la même IL à la fin de toute façon. Voilà comment cela fonctionne:
Ajouter une référence à
Microsoft.VisualBasic
à votre projet. Ajouter un nouveau formulaire (nommé quelque chose commeSplashForm
) pour servir d'écran de démarrage. Pour faire en sorte qu'il ressemble plus à un écran de démarrage approprié, définissezFormBorderStyle
property du formulaire sur "Aucune" et sonStartPosition
property sur "CentreScreen". Vous pouvez ajouter des contrôles ou des images à ce formulaire que vous souhaitez afficher sur l'écran de démarrage de ce formulaire.Ajoutez le code suivant à votre fichier
Project.cs
:using System; using System.Windows.Forms; using Microsoft.VisualBasic.ApplicationServices; namespace WindowsFormsApplication1 { static class Program { [STAThread] static void Main(string[] args) { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); new SplashScreenApp().Run(args); } } public class SplashScreenApp : WindowsFormsApplicationBase { protected override void OnCreateSplashScreen() { this.SplashScreen = new SplashForm(); this.SplashScreen.ShowInTaskbar = false; this.SplashScreen.Cursor = Cursors.AppStarting; } protected override void OnCreateMainForm() { //Perform any tasks you want before your application starts //FOR TESTING PURPOSES ONLY (remove once you've added your code) System.Threading.Thread.Sleep(2000); //Set the main form to a new instance of your form //(this will automatically close the splash screen) this.MainForm = new Form1(); } } }
Si vous voulez faire quelque chose de fantaisie créer comme un écran d'accueil transparent dans le style d'Adobe Photoshop, vous pouvez ajouter une image PNG alpha-channel au fichier Resources de votre projet, puis ajouter le code suivant à votre écran de démarrage, en remplaçant splashImage
par le chemin de votre ressource image incorporée:
protected override void OnPaintBackground(PaintEventArgs pevent)
{
Graphics g = pevent.Graphics;
g.DrawImage(splashImage, new Rectangle(0, 0, this.Width, this.Height));
}
protected override void OnPaint(PaintEventArgs e)
{
//Do nothing here
}
Pour que cela fonctionne, assurez-vous que vous avez le double buffering se hors, ou bien vous aurez un fond noir à votre formulaire. Il n'y a vraiment aucune raison de doubler un écran de démarrage de toute façon.
Pourquoi auriez-vous besoin d'utiliser Visual Basic pour cela? Tout votre code semble C#. – comecme
@comcme: Je n'ai pas suggéré d'utiliser Visual Basic, le code est en effet écrit en C#. J'ai cependant suggéré d'ajouter une référence à 'Microsoft.VisualBasic', qui contient les mots" Visual Basic ". Toutes les fonctions de cet espace de noms sont * également * écrites en C#, et comme je l'ai mentionné, tout compile jusqu'à la même IL de toute façon. Le fait est que la classe 'WindowsFormsApplicationBase' fournie dans cet espace de noms vous donne déjà toutes les fonctionnalités de l'écran de démarrage gratuitement, ce qui vous évite d'écrire un tas de code supplémentaire. C'était juste une blague que C# devs ne devrait pas paniquer sur le nom. –
+1 Cody, vous êtes l'HOMME! C'est parfait. Pourquoi MS n'ajoute pas de support dans Winforms pour la classe SplashScreen, je ne sais pas. Mais c'est parfait. Je vous donne mon chapeau –
WPF 3.5 et versions supérieures ont en fait un support d'écran de démarrage intégré, pour un rendu plus rapide de l'écran de démarrage et beaucoup (beaucoup) moins de failles avec le code. Voir this page pour plus de détails.
N'oubliez pas d'inclure une option dans votre programme pour éteindre l'écran de démarrage, vos utilisateurs vont vous adorer! –
Juste ne faites pas votre écran de démarrage le plus haut. Je déteste les applications que je ne peux pas tabuler, car ils insistent pour que leur écran de démarrage reste visible jusqu'à ce que l'application se charge enfin. – JLWarlow
WPF ou WinForms? –