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

Windows Forms Discussion :

Fermeture bizarre d’un formulaire child


Sujet :

Windows Forms

  1. #1
    Membre régulier
    Inscrit en
    Mai 2004
    Messages
    378
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 378
    Points : 120
    Points
    120
    Par défaut Fermeture bizarre d’un formulaire child
    Bonjour,
    J’ai un problème que je n’ai pas arrivé à comprendre.
    J’ai un formulaire déclarer comme MdiParent, sur ce dernier il y a le menu, j’ouvre un formulaire child, jusqu'à maintenant tout marche bien, via ce formulaire child je doit ouvrir un autre formulaires chlid avec le code suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
               Dim F as new frmarticles
                        F.Show()
                        F.MdiParent = MDI
    Mais la surprise que ce formulaire il se ferme automatiquement
    Et quand je mets :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
               Dim F as new frmarticles
                        F.Show()
    Le formulaire s’ouvre normalement.
    C’est quoi le problème et comment je peux le résoudre.
    Merci
    bonjour Developpez est le meilleur forum.

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    C'est quoi ta variable MDI ?

    Essaie comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim F as new frmarticles
    F.MdiParent = Me.MdiParent
    F.Show()

  3. #3
    Membre régulier
    Inscrit en
    Mai 2004
    Messages
    378
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 378
    Points : 120
    Points
    120
    Par défaut
    Bonjour,
    Mdi c'est le nom du formulaire parent.

    Votre Code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim F as new frmarticles
    F.MdiParent = Me.MdiParent
    F.Show()
    à marché trés bien, mais on doit savoir le probleme.

    Merci
    bonjour Developpez est le meilleur forum.

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Citation Envoyé par badrel Voir le message
    Mdi c'est le nom du formulaire parent.
    Comment ça, son nom ? Tu l'as déclaré et initialisé comment ?

  5. #5
    Membre régulier
    Inscrit en
    Mai 2004
    Messages
    378
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 378
    Points : 120
    Points
    120
    Par défaut
    MDI c'est son nom, et meme j'ai fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Public FrmMdi as new MDI
    Et c'est le meme probleme.
    bonjour Developpez est le meilleur forum.

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Pourquoi "New MDI" ? il faut pas créer une nouvelle form, il faut utiliser celle qui existe déjà... Et comme tu mets comme MdiParent cette nouvelle form (qui n'est pas visible), ta form enfant disparait...

  7. #7
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 153
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 153
    Points : 25 071
    Points
    25 071
    Par défaut
    et puis dans
    F.MdiParent = MDI
    MDI est un type, et pas une valeur (ne pas confondre le nom d'une classe et une instance de cette classe)

    le compilateur ne gueule pas car je crois que vb permet l'utilisation d'instance implicite pour les forms (et pour les débutants) m'enfin ca devrait pas exister (et ca n'existe pas en c#) et à l'execution ca fait n'importe quoi apparemment
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  8. #8
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Citation Envoyé par sperot51 Voir le message
    le compilateur ne gueule pas car je crois que vb permet l'utilisation d'instance implicite pour les forms (et pour les débutants) m'enfin ca devrait pas exister (et ca n'existe pas en c#) et à l'execution ca fait n'importe quoi apparemment

    argh... ils ont quand même pas fait ça

    Les gadgets qu'ils ajoutent dans le langage "pour les débutants" sont une aberration à mon avis, ça garantit juste que les débutants vont faire des erreurs parce qu'ils ne comprendront pas ce qui se passe derrière.

  9. #9
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 153
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 153
    Points : 25 071
    Points
    25 071
    Par défaut
    si si c'est ignoble, je viens de retenter
    j'ai créé un nouveau projet winform vs2008 fx3.5
    ajouté form1 et form2
    sur form2 : textbox1
    sur form1 : button1


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            Form2.Show()
            Form2.TextBox1.Text = "aaa"
        End Sub

    ca compile, ca s'execute et form2 est bien compté comme une instance, ca n'en ouvre pas une nouvelle quand je reclic sur le bouton
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  10. #10
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    C'est dingue... c'est documenté quelque part ce truc ? j'ai jamais vu
    En tous cas ça me renforce dans ma préférence pour C#

  11. #11
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 153
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 153
    Points : 25 071
    Points
    25 071
    Par défaut
    sur l'aide de la classe Form

    ms-help://MS.VSCC.v90/MS.MSDNQTR.v90.fr/dv_vbalr/html/03c4556d-
    fe0b-45eb-9e17-3de9a1424912.htm


    je cite :
    Remarque :
    Visual Basic fournit une variable globale implicite du même nom que le formulaire pour chaque classe Form. Pour plus d'informations, consultez Comment : accéder à un formulaire.
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  12. #12
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    J'ai pas cette page dans la doc chez moi... et sur la page de la classe Form ils parlent pas de ça. Bizarre...

  13. #13
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 153
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 153
    Points : 25 071
    Points
    25 071
    Par défaut
    dans index de msdn quand je tape form et que je clique sur form (classe)
    le titre de la page est Comment : traiter les formulaires comme des objets
    qui ferait partie de Référence du langage Visual Basic
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  14. #14
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    ah ok... en fait j'avais la page, mais j'ai la version anglaise, donc c'est .en à la place de .fr dans l'URL...

    Et celle là :
    ms-help://MS.VSCC.v90/MS.MSDNQTR.v90.fr/dv_vbalr/html/785b286b-ac90-4514-a3e0-5a7009390d69.htm
    Ils expliquent par le menu comment faire quelque chose de complètement contraire aux principes de la POO... affligeant

Discussions similaires

  1. Réponses: 2
    Dernier message: 15/10/2013, 11h14
  2. Réponses: 0
    Dernier message: 30/11/2012, 16h00
  3. Fermeture état en fonction du formulaire ouvert
    Par Marcopololo dans le forum IHM
    Réponses: 6
    Dernier message: 05/07/2008, 19h37
  4. Réponses: 3
    Dernier message: 15/12/2005, 09h44
  5. Boucle attente fermeture formulaire ????
    Par smicky77 dans le forum Access
    Réponses: 1
    Dernier message: 08/09/2005, 20h30

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