Les formulaires en VB.NET

Bonjour tout le monde,

Voilà je galère depuis sur un code vb.net.

J'ai deux Forms: form1 et form2.
Dans form1 j'ai un bouton qui me permet de passer ç la form2 en fermant form1.

Dans form1 j'ai mis le code suivant.

Dim maForm As New form2

code du bouton
     Me.close()
     maForm.showDialog()
fin code

A l'exécution je ne vois rien puisque maForm se ferme immédiatement après.
J'ai pensé à mettre cette déclaration dans un module mais jusque là j'ai le même problème.

Merci de me guider.



--
Logiquement, apres le binaire viendra le ternaire.

1 réponse

  • Votes
  • Date
  • Date décroissante
  1. Contributeur
    Vu que la machine va beaucoup plus vite que son utilisateur (et pis on a pas le choix) on ouvre d'abord l'autre form et puis on ferme l'actuel. Donc :
    Dim maForm As New form2
    code du bouton
         maForm.showDialog()
         Me.close()
    fin code
    1. t'as raison sauf que ca marchera pas car close() ferme la fenêtre mais aussi supprime tout les contrôles qui se trouvent dessus et en plus si il s'agit de la fenêtre de demarrage c'est toute l'application qui sera fermer donc il vaut mieux la cacher en utilisant hide() ce qui donnera ceci:

      debut
      me.hide()
      maform.show()
      fin
    2. Contributeur
      Oops j'avais fait une grosse erreur dans mon code :
      '//début 
      Me.Hide 
      Form2.ShowDialog 
      Me.Show 
      '//fin
    3. Oops encore une, hide() et show() ont un effet opposé si hide() cache le formulaire show() le montre donc les maitre de cette façon risque de ne pas produire grande chose.
      ca serait corrêcte d'utiliser show() dans un autre formulaire.
    4. Contributeur
      Form.ShowDialog fait de la fenêtre une modale : il attend qu'elle soit fermée pour continuer.
    5. ca c'est une trés bonne ruse, chapô