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 :

passer un formulaire par valeur


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Inscrit en
    Mai 2002
    Messages
    163
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 163
    Par défaut passer un formulaire par valeur
    Bonjour, problème de compréhension ...

    Je suis sur une appli avec un formulaire MDI. A partir d'un formulaire fille, je veux en appeler un autre et masquer le premier, pas de problème.

    Mais a partir du second, lors de la fermeture, je veux revenir au premier formulaire ... ce qui nécessite de connaitre le formulaire appelant !

    pour contourner le problème, dans le formulaire appelé, j'ai mis ça :

    Code : 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
        Private mon_form_appelant As System.Windows.Forms.Form
     
        Public Property form_appelant() As System.Windows.Forms.Form
            Get
                form_appelant = mon_form_appelant
            End Get
            Set(ByVal Formulaire As System.Windows.Forms.Form)
                mon_form_appelant = Formulaire
            End Set
        End Property
     
     
        Private Sub bp_retour_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bp_retour.Click
            ' là, il faudrait que je raffiche le formulaire appelant, mais comment ?
            form_appelant.Show()
     
            Me.Close()
        End Sub
    et lors de l'appel a paritr du formulaire appelant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
            Dim Ma_Fille_Mdi_visu As New Ecran_Visualisation
     
            Ma_Fille_Mdi_visu.MdiParent = MDIParent1
            Ma_Fille_Mdi_visu.form_appelant = Me
            Ma_Fille_Mdi_visu.Show()
            Me.Hide()
    et ça marche ...

    mais pourquoi sachant que dans la propriété SET le formulaire est passé en Byval ?

    perso, j'aurais plutôt Byref ...

  2. #2
    Membre chevronné
    Avatar de Ogotcha
    Inscrit en
    Juillet 2008
    Messages
    232
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Juillet 2008
    Messages : 232
    Par défaut
    pourquoi ne pas utiliser le showdialog depuis ta form fille et faire un
    me.visible = false ensuite sur la fermeture de ta form2 faire un formulaire_fille.visible = true.

    C'est peut être une méthode un peu "barbare" mais simple.
    Mon Blog
    FAQs DotNet
    Fonction utile : Recherche

  3. #3
    Membre éprouvé
    Inscrit en
    Mai 2002
    Messages
    163
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 163
    Par défaut
    un formulaire Ecran_Principal créé dynamiquement appel un formulaire Ecran_Visu lui aussi créé dynamiquement

    Le fait de créé dynamiquement les formulaires m'empêche d'écrire quelque chose du style Ecran_principal.visible = true a partir du second formulaire

    Ecran_Principal n'existe pas réellement, mais une instance de ce formulaire existe, c'est cette instance que je ré-affiché ...

    mais la question n'est pas tellement là, ce que je ne comprends pas, c'est que je retombe bien sur l'instance appelante en passant le formulaire par valeur !
    Je pensait que passé un formulaire par valeur ferait une copie du formulaire, pas un lien vers l'original !!!

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

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 197
    Par défaut
    pour un type par valeur (integer, date, boolean ...) byval passe la valeur et byref "la variable"

    pour un type objet (les classes) byval passe une copie du pointeur, et byref le pointeur d'origine
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Membre éprouvé
    Inscrit en
    Mai 2002
    Messages
    163
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 163
    Par défaut
    Ok, merci, ça explique pas mal de chose !

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

Discussions similaires

  1. Passer un objet par valeur et non référence
    Par Pynouz dans le forum C#
    Réponses: 2
    Dernier message: 14/01/2011, 09h42
  2. [template] passer un argument par valeur ou en const &
    Par méphistopheles dans le forum C++
    Réponses: 33
    Dernier message: 04/07/2010, 19h46
  3. passer un tableau d'entier par valeurs à une fonction
    Par piotrr dans le forum Collection et Stream
    Réponses: 10
    Dernier message: 18/12/2007, 01h16
  4. [MySQL] formulaire et valeur par défaut
    Par dgac2000 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 23/05/2007, 16h05
  5. Réponses: 9
    Dernier message: 20/06/2006, 18h47

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