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 :

Fermeture de form étrange


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    291
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 291
    Par défaut Fermeture de form étrange
    Bonjour,

    Voilà j'ai un formulaire frmLstRepertoire contenant un datagridview, lorsque l'utilisateur double click, j'ouvre un formulaire frmAjoModRepParticulier pour modifier un enregistrement:
    Code Vb.net : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    ' Instancier le formulaire et l'ouvrir
    Dim frmAjoMod As Form
    frmAjoMod = New frmAjoModRepParticulier(frmAjoModRepParticulier.lstTypeOuverture.ModeModifier, FctRetourneID)
    frmAjoMod.ShowDialog()

    frmAjoModRepParticulier.lstTypeOuverture.ModeModifier et FctRetourneID me sert juste d'arguments dans le formulaire (mode modification d'un enregistrement, Id de l'enregistrement à modifier)

    Jusque là tout va bien. Par contre, lorsque je ferme le formulaire frmAjoModRepParticulier:

    L'application ferme les deux formulaires frmLstRepertoire et frmAjoModRepParticulier....

    Ce que je ne comprends pas, c'est que j'ai un autre formulaire frmLstVehicule qui ouvre un formulaire frmAjoModVehicule de la même manière que le code précédent. La fermeture est également réalisée de la même manière.... Le formulaire frmAjoModVehicule se ferme bien et l'autre frmLstVehicule reste ouvert.... ...

    Pourquoi ?

    Merci

    Gwendal

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    110
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2006
    Messages : 110
    Par défaut
    Peut être qu'un
    Serait plus judicieux ?

  3. #3
    Membre éprouvé
    Inscrit en
    Mars 2007
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 88
    Par défaut
    Est-tu sur de faire un appel au second formulaire en showdialog() ou fait un appel en Show() ?

    D'autre part, je te déconseille de faire ce que tu fait. Lors de la fermeture de ton premier formulaire, dans l'événement de fermeture, appel la fermeture de ton second formulaire.

    @ +

  4. #4
    Membre éclairé

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    291
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 291
    Par défaut
    Salut,

    On doit pas se comprendre.

    J'ai un formulaire FrmA qui ouvre un autre formulaire FrmB, comme ceci
    Code Vb.net : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Dim frmAjoMod As Form
    frmAjoMod = New FrmB()
    frmAjoMod.ShowDialog()

    Le formulaire FrmB est fermé lorsque l'utilisateur clique sur le bouton

    Seulement, les 2 formulaires se ferment

    Je m'arrache les cheveux parce que j'ai un formulaire FrmC qui ouvre un formulaire FrmD
    Code Vb.net : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Dim frmAjoMod As Form
    frmAjoMod = New FrmD()
    frmAjoMod.ShowDialog()

    Le formulaire FrmD est fermé lorsque l'utilisateur clique sur le bouton
    Et là seul le formulaire FrmD se ferme normalement et c'est le résultat logique et c'est celui que je souhaite avoir.... J'ai fait un essai en faisant ouvrir au formulaire A le formulaire D, et là le deux formulaires se ferment

    Pourquoi, et surtout comment résoudre le problème ?

    D'autre part, je te déconseille de faire ce que tu fait. Lors de la fermeture de ton premier formulaire, dans l'événement de fermeture, appel la fermeture de ton second formulaire.
    J'ai pas tout compris

    Merci

    Gwendal

  5. #5
    Membre émérite
    Inscrit en
    Août 2006
    Messages
    550
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Août 2006
    Messages : 550
    Par défaut
    C'est pas très clair ...

    Si tu appelles ton formulaire avec Showdialog, ce n'est pas la méthode Close qu'il faut appeler mais plutot :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Me.DialogResult = DialogResult.OK ... ou Cancel
    En supposant que tu appelles ton formulaire via la méthode ShowDialog et que le bouton de fermeture du formulaire B se trouve bien dans le formulaire B, la seule explication est que tu as obligatoirement une méthode après la méthode ShowDialog qui affiche ton formulaire B qui déclenche le fermeture du formulaire A.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim frmAjoMod As Form
    frmAjoMod = New FrmB()
    frmAjoMod.ShowDialog()


    Ce code me laisse perplexe ...
    Ce code se trouve-il dans le formulaire A ?

    frmAjoMod ne serait-elle pas la variable qui te sert à instancier ton formulaire A, des fois ?


  6. #6
    Membre éclairé

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    291
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 291
    Par défaut


    Pourquoi j'ai pas suivi le pas à pas plutôt !!

    Code Vb.net : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
     
    Private Sub dgvBase_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles EditerToolStripButton.Click, dgvBase.DoubleClick
     
            Try
     
                Select Case strTypeOuverture
     
                    Case lstTypeOuverture.AjouterModifierRepertoire
     
                        Select Case strTypeRepertoire
     
                            Case lstTypeRepertoire.Particulier
     
                                ' Instancier le formulaire et l'ouvrir
                                Dim frmAjoMod As Form
                                frmAjoMod = New frmAjoModRepParticulier(frmAjoModRepParticulier.lstTypeOuverture.ModeModifier, FctRetourneID)
                                frmAjoMod.Owner = Me
                                frmAjoMod.ShowDialog()
     
                            Case lstTypeRepertoire.Societe
     
                                ' Instancier le formulaire et l'ouvrir
                                Dim frmAjoMod As Form
                                frmAjoMod = New frmAjoModRepSociete(frmAjoModRepSociete.lstTypeOuverture.ModeModifier, FctRetourneID)
                                frmAjoMod.Owner = Me
                                frmAjoMod.ShowDialog()
     
                        End Select
     
                    Case lstTypeOuverture.SelectionDansRepertoire
     
                        ' Retourne dans le formulaire ouvrant, l'Id de la ligne sélectionnée
                        ' afin qu'il puisse charger une instance de la classe répertoire.
                        Dim frmOuvrant As frmAjoModVehicule
                        frmOuvrant = CType(Me.Owner, frmAjoModVehicule)
                        frmOuvrant.ChargerClFrmRepertoire(FctRetourneID)
     
                End Select
     
            Catch ex As Exception
                MessageBox.Show(ex.Message, ex.Source, MessageBoxButtons.OK, MessageBoxIcon.Stop)
     
            Finally
                ' Fermer le formulaire
                'Me.Close()
     
            End Try
     
        End Sub

    La petite ligne
    Code Vb.net : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
                ' Fermer le formulaire
                Me.Close()

    Faudrait regarder plus loin que le bout de son nez !

    Voilà désolé pour le dérangement....

    Gwendal

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

Discussions similaires

  1. fermeture de form avec validation
    Par maxland dans le forum Windows Forms
    Réponses: 5
    Dernier message: 28/04/2008, 19h35
  2. fermeture des formes
    Par senda dans le forum C#
    Réponses: 3
    Dernier message: 02/04/2008, 23h49
  3. Problème de fermeture de forme ShowModal
    Par keisha dans le forum Delphi
    Réponses: 5
    Dernier message: 12/09/2006, 19h33
  4. [Form] ordre de fermeture des forms
    Par ip203 dans le forum IHM
    Réponses: 2
    Dernier message: 14/06/2006, 14h08
  5. [VB.NET] thread interrompu lors d'une fermeture de form ?
    Par HULK dans le forum Windows Forms
    Réponses: 3
    Dernier message: 30/01/2006, 15h00

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