bonjour,
je souhaite utiliser un écran de demarrage et j'aimerai bien savoir si il y a un événement qui est générer lors du démarrage de l'application ou d'un formulaire pour en profiter à afficher le start up screen.
merci d'avance les amis.
Version imprimable
bonjour,
je souhaite utiliser un écran de demarrage et j'aimerai bien savoir si il y a un événement qui est générer lors du démarrage de l'application ou d'un formulaire pour en profiter à afficher le start up screen.
merci d'avance les amis.
Je ne vois pas bien ce que tu souhaites vraiment faire mais si tu veux il y a cette fonction qui s'exécute au démarrage de l'application au niveau de ApplicationEvents.
Code:
1
2
3
4
5
6 Protected Overrides Function OnInitialize(ByVal commandLineArgs As System.Collections.ObjectModel.ReadOnlyCollection(Of String)) As Boolean Return MyBase.OnInitialize(commandLineArgs) End Function
si j'ai bien compris tu veux un écran d'attente de chargement de l'application dans lequel tu mets numéro de version, licence, ...
déjà tu peux l'ajouter via visual studio, bouton droit sur ton projet, ajouter, nouvel élément, choisir "SplashScreen".
personnellement je n'utilise pas cette option car je veux tout maîtriser par le code et du coup voila ce que je fais :
- une classe FrmPrincipale qui est le formulaire de démarrage de mon application
- une classe FrmSplash qui va contenir le code, les informations, ... du splash screen
dans ton main() c'est à dire le point d'entrée de ton programme tu dois ajouter la gestion de cet écran :
Maintenant bien sûr il faut coder "StartSplash" dans le formulaire principale :Code:
1
2
3
4
5
6
7
8 Dim fprincipale As New FrmPrincipale() '--Thread pour le splash Dim splashThread As New Threading.Thread(New Threading.ThreadStart(AddressOf fprincipale.StartSplash)) splashThread.Start() '--je lance le splash avant tout System.Windows.Forms.Application.Run(fprincipale) '--je lance le formulaire principale If splashThread.IsAlive Then splashThread.Abort()
il faut bien sûr pouvoir arrêter le formulaire splash une fois le chargement est terminé, du coup une fonction CloseSplash dans le formualire principale :Code:
1
2
3
4
5
6
7
8
9
10 '--on doit accéder au formulaire splash partour Private Shared splash As FrmSplash = Nothing '--Faire tourner le formulaire splash Public Sub StartSplash() '--instancier le nouveau splash splash = New FrmSplash() '--fait lancer le formulaire Windows.Forms.Application.Run(splash) End Sub 'StartSplash
Alors si tu as bien suivi tu me diras qu'il manque quelques choses :koi:Code:
1
2
3
4
5
6
7
8 Private Sub CloseSplash() If splash Is Nothing OrElse splash.IsDisposed Then Return '--Fermer le formulaire splash splash.Invoke(New EventHandler(AddressOf splash.KillMe)) splash.Dispose() splash = Nothing End Sub
le code de la classe Frmsplash et notamment la fonction KillMe et donc :
il reste à faire appel à la fonction closesplash quand on pense que le chargement est terminé, personnellement je charge mes objets dans l'évènement "shown" de mon formualire principale, du coup quand je termine je fais tout simplement appel à CloseSplash()Code:
1
2
3
4
5 ''' <summary>Ferme le splash</summary> Public Sub KillMe(ByVal o As Object, ByVal e As EventArgs) Me.Close() End Sub
il faudra bien sûr gérer les cas de bugs et bien tester ceci ;)
merci pour vos réponses les amis.
m_mas, tu veux dire par ca qu'en peux utiliser les threads d'execution pour gérer le chargement de l'application? n'est ce pas?
désolé mais les threads pour moi sont pareille aux timers puisque ils sont traiter de maniere manuel hors se que je cherche à faire c'est afficher tand que l'application se charge cette ecran de demarrage qui fera patienter l'utilisateur.:roll:
je t'ai donné 2 pistes pour l'écran de démarrage mais tu n'as retenu que la deuxième que j'ai expliqué ;) voici un lien pour la première piste qui est créer automatiquement un splashscreen ([ame="http://www.google.com/search?hl=fr&client=firefox-a&rls=org.mozilla%3Afr%3Aofficial&hs=DIV&q=VB.NET+splashscreen&btnG=Rechercher&lr=&aq=f&oq="]google[/ame]) avec VB.NET
c'est justement cette piste que je cherche à la base c'est pourquoi je cherchais un événement généré avec le chargement de l'app afin que je puisse faire appel à un splashscreen.
par exemple formclose et formclosing l'un quand une form est en cour de fermeture et l'autre quand elle est fermée.
une idée qui va avec cette piste.