Ok, je sais que cela a été demandé un million de fois auparavant (et les gens commencent aussi leur question StackOverflow de la même façon XD), mais je voudrais savoir comment atteindre les résultats suivants:Une exigence différente pour un écran de démarrage dans l'application winforms
- la première application lance une boîte de connexion
- Si la connexion est réussie, l'écran de démarrage doit montrer (sur un thread séparé).
- Lorsque l'écran de démarrage est affiché, un objet de classe doit être rempli (qui adhère au motif Singleton) avec des quantités importantes de données spécifiques à l'utilisateur du DB, tout en affichant à l'utilisateur ce qu'il fait (par exemple initialisation. ..loading data ... préférences de chargement ... renderplay workspace ... done!)
- L'écran de démarrage doit également attendre que le formulaire principal ait fini de s'initialiser sur le thread principal, avant d'être finalement éliminé.
C'est le flux de désir pour l'application. Lors de la fermeture du formulaire principal, l'utilisateur doit être renvoyé à la boîte de connexion.
Je dois dire d'emblée que je ne suis pas tout à fait d'accord avec beaucoup de choses sur les winforms, mais en posant ce genre de questions, j'apprends lentement. J'ai fait quelques lectures sur le threading, et j'ai appris que l'écran de démarrage devrait apparaître dans son propre thread, et alimenter les mises à jour en utilisant des délégués (pour gérer les mises à jour de l'interface utilisateur) du thread principal. cela devrait être fait dans le sous-programme Program.cs "Main()".
J'arrive ici, car je ne sais même pas par où commencer, en raison de l'exigence supplémentaire d'avoir le formulaire de connexion en premier (et ensuite en dernier lorsque le formulaire principal est fermé). J'apprécierais certainement toute aide à cet égard.
Merci beaucoup! sha
Cela ne génère pas le Splash Form dans un thread séparé, mais l'autre lien devrait aider avec cela. –
Pour communiquer avec l'écran de démarrage, soit il écoute les événements sur ApplicationWindow, soit le processus de chargement appelle périodiquement les méthodes sur l'écran de démarrage. N'oubliez pas d'utiliser BeginInvoke si l'écran de démarrage est dans un fil séparé. –
Vous avez raison. Cela fait un moment que j'ai regardé ce code. Je vais mettre à jour mon message pour être correct. Merci. –