9
votes

Comment recharger le formulaire Windows sans la fermer à l'aide de vb.net?

Pouvez-vous me dire comment je peux recharger un formulaire Windows sans le fermer à l'aide de vb.net?


0 commentaires

7 Réponses :


9
votes

Mettez tout votre code d'initialisation dans une méthode et non du constructeur ou de l'événement Form.load et appelez cette méthode. Cela peut également inclure la méthode InitializEcomonent () générée par designer qui définit toutes les commandes sur le formulaire. Vous devez supprimer toutes les commandes sur le formulaire comme première action dans cette méthode, cependant.


0 commentaires

5
votes

Vous ne pouvez pas faire ça.

Pourquoi voulez-vous recharger un formulaire? Voulez-vous effacer tous les contrôles d'entrée ou quelque chose comme ça? La solution la plus simple pourrait être de faire le nettoyage à la main.

Alternativement , vous pouvez mettre toutes vos commandes dans un conteneur de contrôle utilisateur. Ensuite, il suffit d'instancier ce contrôle de l'utilisateur sur votre formulaire. Si vous souhaitez recharger votre contenu de formulaire, vous devez désormais supprimer et ré-instancier le contrôle de l'utilisateur.


0 commentaires

4
votes
Application.Restart()
Shuts down the application and immediately opens a new instance.

3 commentaires

Une forme pas une application entière!


Je ne sais pas qui a voté ce gars, mais c'est la réponse la plus propre. Peut ne pas être un formulaire rafraîchi comme Altf4 dit mais je ne pense pas qu'il existe un moyen propre de recharger la forme. L'astuce de la compensation, de l'initialisation et de l'exécution de l'événement de charge ne fonctionnera pas pour tout le monde. Plus probablement alors ne pas utiliser Me.Controlsclear () va laisser beaucoup de ressources ouvertes qui vont causer des problèmes de violation d'accès sur "Actualiser". Le redémarrage propre est le seul moyen de le faire sans être bâclé. +1


Je viens de commenter un bloc de code encombrant et le remplacé par cela. Beaucoup mieux!



1
votes

Essayez d'utiliser moi.refresh () Cela a fonctionné avec moi


2 commentaires

Vous avez probablement eu une actualisation inférieure déjà définie pour que cela fonctionne.


Nope, rafraîchir est une option.



10
votes

Je sais qu'il est tard, mais utile xxx


1 commentaires

C'est en train de travailler. Mettre tous les codes de démarrage dans une méthode ne me convient pas. J'ajoutais et retire beaucoup de commandes dynamiques dans une boucle, mais initializecomonent a fait le travail.



1
votes
Me.Controls.Clear() 'removes all the controls on the form
InitializeComponent() 'load all the controls again
main_Load(e, e)
MsgBox("Thank you for sending report", vbInformation, "")
Refresh()

0 commentaires

0
votes

Je sais. Je suis en retard à la fête. Mais, peut-être que cela fonctionne pour qui en a besoin.

Si vous affichez un formulaire d'une autre forme avec .Showdialog Le code après exécution de cet appel lorsque le formulaire qui a été montré est fermé. Exemple: xxx

alors il n'est pas nécessaire de mettre à jour le formulaire de l'autre formulaire (form2).


0 commentaires