IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

De quelle façon ouvrir une seconde fenêtre


Sujet :

VB.NET

  1. #1
    Membre actif Avatar de stracoma
    Homme Profil pro
    Médecin
    Inscrit en
    août 2013
    Messages
    408
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Maroc

    Informations professionnelles :
    Activité : Médecin

    Informations forums :
    Inscription : août 2013
    Messages : 408
    Points : 227
    Points
    227
    Par défaut De quelle façon ouvrir une seconde fenêtre
    Bonsoir tout le monde.
    à partir d'un boutton de Form1, je veux ouvrir une Form2; ces deux instructions marchent:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Dim fr As New Form2
            fr.Visible = True
    ou simplement:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Form2.Visible = True
    Y'a t-il une différence entre les deux?
    Merci
    J'apprends la programmation pour le plaisir

  2. #2
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    janvier 2012
    Messages
    4 905
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : janvier 2012
    Messages : 4 905
    Points : 10 177
    Points
    10 177
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    À première vue et sans aucune recherche pour confirmer ou nier.

    Si je me fie au peu que je peux savoir de la POO, on ne pourrait probablement pas utiliser directement la classe Form2 mais un objet qui représente la classe. Donc ta première formulation pourrait bien être la formulation "officielle" à utiliser en créant un Objet particulier qui représente la classe Form2.

    Et ta deuxième formulation deviendrait égale à la première à cause d'un "automatisme" implanté dans VS qui ferait que cela marche.


    Mais bon, je spécule.
    À ma connaissance, le seul personnage qui a été diagnostiqué comme étant allergique au mot effort. c'est Gaston Lagaffe.

    Ô Saint Excel, Grand Dieu de l'Inutile.

    Excel n'a jamais été, n'est pas et ne sera jamais un SGBD, c'est pour cela que Excel s'appelle Excel et ne s'appelle pas Access junior.

  3. #3
    Expert éminent sénior

    Avatar de François DORIN
    Homme Profil pro
    Consultant informatique
    Inscrit en
    juillet 2016
    Messages
    2 645
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : juillet 2016
    Messages : 2 645
    Points : 10 376
    Points
    10 376
    Billets dans le blog
    21
    Par défaut
    Bonjour,

    Tu dois avoir une instance de Form2 qui s'appelle Form2. Ce n'est pas possible sinon ! Ce n'est pas possible en C#, mais cela peut l'être en VB.NET. Un connaisseur de VB pour confirmer ?
    François DORIN
    Consultant informatique : conception, modélisation, développement (C#/.Net et SQL Server)
    Site internet | Profils Viadéo & LinkedIn
    ---------
    Page de cours : fdorin.developpez.com
    ---------
    N'oubliez pas de consulter la FAQ C# ainsi que les cours et tutoriels

  4. #4
    Membre habitué
    Homme Profil pro
    Inscrit en
    mars 2011
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Cher (Centre)

    Informations forums :
    Inscription : mars 2011
    Messages : 103
    Points : 150
    Points
    150
    Par défaut
    Comme dit par françois dorin, il faut qu'un form2 soit déjà créé dans le projet sinon erreur de VS.
    La première formulation crée une nouvelle fenêtre (ayant comme modèle form2) à chaque appui sur le bouton.
    La deuxième ouvre la fenêtre form2 au premier appui, puis plus rien après.

  5. #5
    Membre actif Avatar de stracoma
    Homme Profil pro
    Médecin
    Inscrit en
    août 2013
    Messages
    408
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Maroc

    Informations professionnelles :
    Activité : Médecin

    Informations forums :
    Inscription : août 2013
    Messages : 408
    Points : 227
    Points
    227
    Par défaut
    Bonsoir et merci de m'avoir répondu.
    Pour moi le mystère subsiste toujours car je ne comprends pas la chose suivante:
    quand je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
        Private Sub Form2_FormClosed(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed
            Form1.Visible = True
        End Sub
    Quand je ferme Form2, Form1 s'ouvre et quand je ferme Form1, le débogage s'arrête.
    Par contre quand je fais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub Form2_FormClosed(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed
            Dim fr As New Form1
            fr.Visible = True
        End Sub
    Quand je ferme Form2, Form1 s'ouvre et quand je ferme Form1, là,le débogage ne s'arrête pas!!
    Je veux comprenfdre pourquoi
    merci
    J'apprends la programmation pour le plaisir

  6. #6
    Expert éminent sénior

    Avatar de François DORIN
    Homme Profil pro
    Consultant informatique
    Inscrit en
    juillet 2016
    Messages
    2 645
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : juillet 2016
    Messages : 2 645
    Points : 10 376
    Points
    10 376
    Billets dans le blog
    21
    Par défaut
    Parce que dans le deuxième cas, tu créés une nouvelle instance de Form1. Quand tu la fermes, il en reste une d'active (mais non visible). C'est pour cela.
    François DORIN
    Consultant informatique : conception, modélisation, développement (C#/.Net et SQL Server)
    Site internet | Profils Viadéo & LinkedIn
    ---------
    Page de cours : fdorin.developpez.com
    ---------
    N'oubliez pas de consulter la FAQ C# ainsi que les cours et tutoriels

  7. #7
    Modérateur

    Homme Profil pro
    Inscrit en
    janvier 2007
    Messages
    1 718
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : janvier 2007
    Messages : 1 718
    Points : 5 459
    Points
    5 459
    Par défaut
    En vb, nous pouvons effectivement accéder directement à "Form1" et "Form2". Mais cela n'est pas une bonne pratique de POO. (et C# ne l'autorise pas).
    C'est pour cela qu'il est préférable de créer une instance d'une fenêtre de cette façon Dim fr As New Form2 et d'utiliser la variable "fr" pour travailler.

    Citation Envoyé par stracoma Voir le message
    Pour moi le mystère subsiste toujours car je ne comprends pas la chose suivante:
    quand je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
        Private Sub Form2_FormClosed(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed
            Form1.Visible = True
        End Sub
    Quand je ferme Form2, Form1 s'ouvre et quand je ferme Form1, le débogage s'arrête.
    Par contre quand je fais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub Form2_FormClosed(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed
            Dim fr As New Form1
            fr.Visible = True
        End Sub
    Quand je ferme Form2, Form1 s'ouvre et quand je ferme Form1, là,le débogage ne s'arrête pas!!
    Je veux comprenfdre pourquoi
    merci
    Au lancement de l'application vb utilise directement "Form1" (contrairement à C# qui lance un Application.Run(new Form1()); dans la méthode "main()" de la classe statique "Program")

    Vous avez donc ce comportement parce que, au lancement de l'application VB charge "Form1".
    Quand vous écrivez Dim fr As New Form1 vous créez une "instance de Form1" qui s'appelle "fr" mais qui n'est pas la fenêtre de lancement de l'appli "Form1". Quand vous fermez cette fenêtre que vous venez de créer, vous fermez donc "l'instance de Form1" qui s'appelle "fr", mais la fenêtre de démarrage "Form1" est toujours active. (c'est le piège)
    Traductions d'articles :
    La mémoire en .NET - Qu'est-ce qui va où ?
    Architecture DAL de haute performance et DTO ; Version C# : Partie 1,Partie 2,Partie 3 — Version VB.NET : Partie 1,Partie 2,Partie 3
    N'hésitez pas à consulter la FAQ VB.NET, le cours complet de Philippe Lasserre et tous les cours, articles et tutoriels.

  8. #8
    Membre actif Avatar de stracoma
    Homme Profil pro
    Médecin
    Inscrit en
    août 2013
    Messages
    408
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Maroc

    Informations professionnelles :
    Activité : Médecin

    Informations forums :
    Inscription : août 2013
    Messages : 408
    Points : 227
    Points
    227
    Par défaut
    Bonsoir
    Maintenant il n'y a plus de mystère pour moi
    Merci à vous
    J'apprends la programmation pour le plaisir

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème ActionListener pour ouvrir une seconde fenêtre
    Par jesuislibre15 dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 15/04/2012, 03h02
  2. [XCode] Ouvrir une seconde fenêtre (appli MAC)
    Par synolog dans le forum XCode
    Réponses: 2
    Dernier message: 08/02/2012, 13h57
  3. ouvrir une nouvelle fenêtre dans une taille déterminé
    Par lnikolanta dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 26/09/2005, 16h26
  4. Ouvrir une nouvelle fentre en grand ?
    Par Sylk dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 15/09/2005, 14h14
  5. [ShellExecute] ouvrir une nouvelle fenêtre ie
    Par sony351 dans le forum C++Builder
    Réponses: 2
    Dernier message: 21/11/2004, 19h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo