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 :

instancier des Forms fille dans un Form Parent


Sujet :

VB.NET

  1. #1
    Nouveau membre du Club
    Inscrit en
    Décembre 2005
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 79
    Points : 35
    Points
    35
    Par défaut instancier des Forms fille dans un Form Parent
    comment on peut declarer instanciation des forms fille dans un form parent merci?

  2. #2
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut
    pardon ?

  3. #3
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 177
    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 177
    Points : 25 125
    Points
    25 125
    Par défaut
    (+1 mais je tente, on sait jamais)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    dim f as new form2
    f.show

  4. #4
    Nouveau membre du Club
    Inscrit en
    Décembre 2005
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 79
    Points : 35
    Points
    35
    Par défaut
    oui je sais merci mais ma question est comment peut declarer l instanciation des forms fille dans la form parent pour que je puisse les appeler sans d avoir doubles des meme form
    merci

  5. #5
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 177
    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 177
    Points : 25 125
    Points
    25 125
    Par défaut
    utilises une variable privée
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    private f as form2

    et dans ton bouton qui ouvre la fenetre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if f is nothing orelse f.isdisposed then
      f = new form2
    end if
    f.show

  6. #6
    Nouveau membre du Club
    Inscrit en
    Décembre 2005
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 79
    Points : 35
    Points
    35
    Par défaut
    merci enormement je vais l essayer mais dis moi stp si je veux par exple declarer 2 form children dans la form parent au lieu d une alors je fais comment ?merci

  7. #7
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 177
    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 177
    Points : 25 125
    Points
    25 125
    Par défaut
    il faut 2 variales privées
    et je suppose que tu as 2 boutons, un pour ouvrir chaque fenetre, donc chacun un peu de code pour chaque variable

  8. #8
    Nouveau membre du Club
    Inscrit en
    Décembre 2005
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 79
    Points : 35
    Points
    35
    Par défaut
    la je viens de tester mais ca me donne pas la meme chose que je cherche
    ca me donne form parent et form1 dans le ccontenu de form parent yas de souci mais qd j apel form2 a parir de form1 qui est affichée dans le contenu du formparent j ai une form2 séparée et pas affichée dans le contenu du formparent et que je veux revenir au form1 a partir du form2 j ai une form1 pas la meme qui est affichée sur le contenu du form parent
    en bref j ai plein exemplaires des form1 et form2
    et pas affichées sur le meme contenu et je te montre un simple code pour ca:
    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
    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
    50
    51
    52
    53
    54
    55
    56
    57
    58
     
     
    Public Class Form1
        Private fr As Form2
     
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            'code pour afficher Form2 sur le contenu de MDIParent
            'Dim f As New Form2
            'f.Show()
            'Me.Hide()
     
            If fr Is Nothing OrElse fr.IsDisposed Then
                fr = New Form2
            End If
            fr.Show()
     
        End Sub
     
        Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
            End
        End Sub
    End Class
     
     
    Public Class Form2
     
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            'code pour retourner au Form1 et dans le contenu MDIParent
            Dim f As New Form1
            f.Show()
            'Me.Hide()
        End Sub
     
        Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
            End
        End Sub
    End Class
     
     
    Imports System.Windows.Forms
     
    Public Class MDIParent1
        Dim ChildForm As New Form1
     
        Private m_ChildFormNumber As Integer
        Private Sub Form1ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Form1ToolStripMenuItem.Click
     
        End Sub
        Private Sub Form2ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Form2ToolStripMenuItem.Click
     
        End Sub
        Private Sub NewToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles NewToolStripMenuItem.Click
            ChildForm.MdiParent = Me
            ChildForm.Show()
        End Sub
     
     
    End Class
    je te remercie

  9. #9
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut
    Il faut passer au constructeur de Form2 une référence à Form1 afin de pouvoir la repasser au premier plan et pas créer une nouvelle Form1 ...
    M'enfin, vb et moi ça fait beaucoup, alors je pense que je vais laisser sperot t'aider sur ce point s'il veux bien

    Par contre tu veux faire quoi exactement ? afficher plusieurs form "indépendantes" ou créer une application MDI ?

  10. #10
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 177
    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 177
    Points : 25 125
    Points
    25 125
    Par défaut
    les contructeurs en c# moi c'est pareil, je saurais pas en écrire un tellement j'ai du mal à en lire


    sur ta classe form2 si tu veux pouvoir afficher form1, il une variable qui contienne la form1 qui a appelé form2



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    public class form2
     
    private Form1Instance as form
     
    public sub new(form1appelant as form)
        initializecomponent
        Form1Instance = form1appelant 
    end sub
     
    end class
    et sur un bouton de form2 par exemple tu fais Form1Instance.show


    en espérant que ca réponde à la question car je sais pas trop ce que tu veux exactement

  11. #11
    Nouveau membre du Club
    Inscrit en
    Décembre 2005
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 79
    Points : 35
    Points
    35
    Par défaut
    c est jentille de ta part je veux creer une application qui garde trj la form parent et afficher des forms sur le contenu du formparent et pas plus d une seule exmplaire pour chaque form mais ouverte toutes tu vois un peu

  12. #12
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 177
    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 177
    Points : 25 125
    Points
    25 125
    Par défaut
    oui c'est pour ca qu'il faut garder une référence pour chaque fenetre
    vu qu'il faut la créé la 1ère fois, il faut tester si la variable est à nothing, tu fais un new d'une fenetre, si elle est pas à nothing, dans ce cas tu affiches celle qui est dans la variable


    sinon autrement, tu peux faire un module avec les variables de chaque fenetre
    (le module tu peux le mettre n'importe où hors d'une classe)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public module
     
    public FormParentOuverte as form
    public Form1Ouverte as form
    public Form1Ouverte as form
     
    end module
    de cette manière, ces variables sont accessibles de n'importe où dans l'application, dans l'evenement form_load de chaque fenetre, il suffit de remplir la variable
    ainsi sur form2_load tu fais Form1Ouverte = me

  13. #13
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut
    Mais plus je relis, plus j'ai l'impression que tu veux faire du MDI.
    A tout hasard, je te met donc un lien qui explique tout : http://plasserre.developpez.com/v4-4.htm

  14. #14
    Nouveau membre du Club
    Inscrit en
    Décembre 2005
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 79
    Points : 35
    Points
    35
    Par défaut
    merci enormement pour vous tous c est vrm jentil de votre part
    bon j ai compri le principe de variable pour savoir si la 1 fois que la form est instanciée ou pas ca c est pas mal et simple
    et le module j ai pas pu de savoir comment je peux le realiser
    oui je voudrai faire application de type MDI

  15. #15
    Nouveau membre du Club
    Inscrit en
    Décembre 2005
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 79
    Points : 35
    Points
    35
    Par défaut
    je suis vrm désolé pour le derangement mais la je serai concrait je vous montre un code de mon application MDI et essaye svp de remplir le code qu il faut pour bien comprendre merci a l infini jusqu au la fin de l infini:
    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
    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
     
     ----------------Form1-------------------
    Public Class Form
        Private Sub Bform1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Bform1.Click
     
     
     
        End Sub
    End Class
     
    ---------------------------------Form2-----------------
    Public Class Form2
     
        Private Sub Bform1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Bform1.Click
     
        End Sub
    End Class
     
    ---------------Form Principale------------------------
     
    Imports System.Windows.Forms
     
    Public Class principale
     
        Private Sub ShowNewForm(ByVal sender As Object, ByVal e As EventArgs) Handles NewToolStripMenuItem.Click
            'ici je veux appeler ma Form1 
     
            ' Créez une nouvelle instance du formulaire enfant.
            Dim ChildForm As New System.Windows.Forms.Form
            ' Configurez-la en tant qu'enfant de ce formulaire MDI avant de l'afficher.
            ChildForm.MdiParent = Me
     
            m_ChildFormNumber += 1
            ChildForm.Text = "Fenêtre " & m_ChildFormNumber
     
            ChildForm.Show()
        End Sub
     
        Private m_ChildFormNumber As Integer
     
        Private Sub ExitToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ExitToolStripMenuItem.Click
            End
        End Sub
    End Class
    voila svp si ca vous derange d ecrire code pour faire application MDI
    je vous remercie enormement

  16. #16
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 177
    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 177
    Points : 25 125
    Points
    25 125
    Par défaut
    chouette des textes à trou
    y a pas la liste des choix possibles comme à l'époque ?



    avant de remplir faudrait que je comprenne complètement ce que tu veux
    au debut de ton prog, je pense que form principal s'ouvre
    y a t il des boutons dessus ? des menus ?
    form principal peut ouvrir form1 ? form2 ? les 2 ?
    form1 a un bouton pour passer à form2 ?
    form2 a un bouton pour passer à form1 ?
    si vrai pour les 2 dernières questions, des boutons sur form principal n'aurait pas été mieux ?

  17. #17
    Nouveau membre du Club
    Inscrit en
    Décembre 2005
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 79
    Points : 35
    Points
    35
    Par défaut
    Bon Form Principale est lancée au démarage d application
    Formprincipale a un menu Fichier : Nouveau et quitter
    alors qd je clik sur nouveau ca m affiche Form1 dans le contenu du formprincipale
    et form1 a un button: s appele "BForm1" et je clik sur ce button appelle Form2 qui est affichée sur le contenu du Form principale ctadire sur le meme endroit ou etait affichée form1
    et form2 a un button s appele "Bform2" qui appele form1 si je clik
    et voila
    merci

  18. #18
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 177
    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 177
    Points : 25 125
    Points
    25 125
    Par défaut
    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
    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
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
     ----------------Form1-------------------
    Public Class Form1
     
      Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
             principale.form1ouverte= me 
        End Sub
     
        Private Sub Bform1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Bform1.Click
     
         if principale.form2ouverte is nothing orelse principale.form2ouverte.isdisposed then
            principale.form2ouverte = new form2
         end if
     
        principale.form2ouverte.show
     
        End Sub
    End Class
     
    ---------------------------------Form2-----------------
    Public Class Form2
     
     
        Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
             principale.form2ouverte= me 
        End Sub
     
        Private Sub Bform1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Bform1.Click
     
      if principale.form1ouverte is nothing orelse principale.form1ouverte.isdisposed then
            principale.form1ouverte = new form1
         end if
     
        principale.form1ouverte.show
     
        End Sub
    End Class
     
    ---------------Form Principale------------------------
     
    Imports System.Windows.Forms
     
    Public Class principale
     
        public shared FormPrincipale as form
        public shared Form1Ouverte as form
        public shared Form2Ouverte as form
     
     
       Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
             FormPrincipale = me 
        End Sub
     
     
        Private Sub ShowNewForm(ByVal sender As Object, ByVal e As EventArgs) Handles NewToolStripMenuItem.Click
            'ici je veux appeler ma Form1 
     
            ' Créez une nouvelle instance du formulaire enfant.
            Dim ChildForm As New System.Windows.Forms.Form
            ' Configurez-la en tant qu'enfant de ce formulaire MDI avant de l'afficher.
            ChildForm.MdiParent = Me
     
            m_ChildFormNumber += 1
            ChildForm.Text = "Fenêtre " & m_ChildFormNumber
     
            ChildForm.Show()
        End Sub
     
        Private m_ChildFormNumber As Integer
     
        Private Sub ExitToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ExitToolStripMenuItem.Click
            End
        End Sub
    End Class

    public shared FormPrincipale as form j'suis pas sur que ca serve
    je m'y connais pas trop en mdi, mais je crois qu'il faut définir le parent quelque part ...

  19. #19
    Nouveau membre du Club
    Inscrit en
    Décembre 2005
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 79
    Points : 35
    Points
    35
    Par défaut
    bon deja je te remercie enormement
    j ai testé et ca marchais bien il manque just le faite que Form2 n est pas affichée sur le meme endroit que Form1 sur le contenu du Form Principale
    Form2 est séparée et en plus quand je rapele une page deja ouverte et réduite a partir d autre page ouverte ca m affiche pas cette form qui est ouverte et réduite
    tu vois sionon ca marchais
    je sais si tu peux finir la résolution de problem
    je te remercie

  20. #20
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 177
    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 177
    Points : 25 125
    Points
    25 125
    Par défaut
    ca depend de la taille de la fenetre
    pour une child de mdi, tu peux mettre maximized

Discussions similaires

  1. [Lazarus] Construire le nom des composants présents dans la form
    Par weberick dans le forum Lazarus
    Réponses: 9
    Dernier message: 07/02/2009, 08h24
  2. Geler des txt box dans un forms
    Par Peter2 dans le forum IHM
    Réponses: 8
    Dernier message: 12/06/2007, 21h46
  3. [Problème]Nombre et nom des champs dynamiques dans un form
    Par julienOriano dans le forum Struts 1
    Réponses: 17
    Dernier message: 10/04/2007, 15h32
  4. [C#] Problème de requetes en Sql dans une form fille
    Par padodanle51 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 10/05/2006, 11h32
  5. Réponses: 2
    Dernier message: 14/04/2005, 21h57

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