Lier deux formulaires d'un même projet

Résolu/Fermé
Micael27 Messages postés 25 Date d'inscription lundi 5 septembre 2016 Statut Membre Dernière intervention 10 janvier 2019 - 3 févr. 2018 à 01:32
Whismeril Messages postés 19029 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 26 avril 2024 - 6 févr. 2018 à 08:17
Bonjour, je suis sur un projet et j'ai choisis VB a cause de son aspect graphiquement utile. J'ai donc créer des windows forms mais je n'arrive pas à les lier, j'ai déjà concu les interfaces et les boutons pour passer d'un form à un autre mais je bloque sur le code.
Merci de me dépanner



3 réponses

jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
3 févr. 2018 à 14:22
Bonjour,

Commence par nous préciser quel VB tu utilises :VBA, VB6, VB.NET (quelle version.. )

Ensuite... explique nous exactement ce que tu entends par "lier" les formulaires.
0
Whismeril Messages postés 19029 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 26 avril 2024 931
3 févr. 2018 à 19:12
Bonsoir
l'appellation windows form étant associée à VB.Net, je vais donc parier sur cette technologie.
https://codes-sources.commentcamarche.net/faq/11107-interactions-entre-form-en-net-c-et-vb-net
0
Kalissi Messages postés 218 Date d'inscription jeudi 2 mai 2013 Statut Membre Dernière intervention 15 juillet 2019 20
5 févr. 2018 à 16:47
Bonjour,

Exemple :

1.) Créer une classe d'objet pour que les éléments de travail soient partagés.


Public Class Elements

    Private mNom As String = String.Empty
    Private mPrenom As String = String.Empty

    Public Property Nom As String
        Get
            Return Me.mNom
        End Get
        Set(value As String)
            Me.mNom = value
        End Set
    End Property

    Public Property Prenom As String
        Get
            Return Me.mPrenom
        End Get
        Set(value As String)
            Me.mPrenom = value
        End Set
    End Property

End Class



2.) Créer le premier formulaire

Public Class Form1

    Private mFrm2 As New Form2(Me)
    Private mDonnee As Elements

    Private Property Frm2 As Form2
        Get
            Return Me.mFrm2
        End Get
        Set(value As Form2)
            Me.mFrm2 = value
        End Set
    End Property

    Public Property Donnee As Elements
        Get
            If (Me.mDonnee Is Nothing) Then
                Me.mDonnee = New Elements
            End If
            Return Me.mDonnee
        End Get
        Set(value As Elements)
            Me.mDonnee = value
        End Set
    End Property

    Private Sub btnForm2_Click(sender As Object, e As EventArgs) Handles btnForm2.Click
        Frm2.Show()
        Frm2.Donnee = Me.mDonnee
        Me.Hide()
    End Sub

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Frm2.Show()
        Frm2.Hide()
    End Sub

    Private Sub btnQuitter_Click(sender As Object, e As EventArgs) Handles btnQuitter.Click
        End
    End Sub

    Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged
        Me.Donnee.Nom = TextBox1.Text
    End Sub

    Private Sub TextBox2_TextChanged(sender As Object, e As EventArgs) Handles TextBox2.TextChanged
        Me.Donnee.Prenom = TextBox2.Text
    End Sub

    Private Sub Form1_Activated(sender As Object, e As EventArgs) Handles Me.Activated

        If (Frm2.Donnee IsNot Nothing) Then
            Me.Donnee = Frm2.Donnee
            Me.TextBox1.Text = Me.Donnee.Nom
            Me.TextBox2.Text = Me.Donnee.Prenom
        End If

    End Sub

End Class


3.) Créer le deuxième formulaire

Public Class Form2

    Private mFrm1 As Form1
    Private mDonnee As Elements

    Private Property Frm1 As Form1
        Get
            Return Me.mFrm1
        End Get
        Set(value As Form1)
            Me.mFrm1 = value
        End Set
    End Property

    Public Property Donnee As Elements
        Get
            If (Me.mDonnee Is Nothing) Then
                Me.mDonnee = New Elements
            End If
            Return Me.mDonnee
        End Get
        Set(value As Elements)
            Me.mDonnee = value
        End Set
    End Property

    Public Sub New(ByVal pFrm As Form1)

        ' Cet appel est requis par le concepteur.
        InitializeComponent()

        ' Ajoutez une initialisation quelconque après l'appel InitializeComponent().
        Frm1 = pFrm

    End Sub

    Private Sub btnForm1_Click(sender As Object, e As EventArgs) Handles btnForm1.Click
        Frm1.Show()
        Frm1.Donnee = Me.Donnee
        Me.Hide()
    End Sub

    Private Sub btnQuitter_Click(sender As Object, e As EventArgs) Handles btnQuitter.Click
        End
    End Sub

    Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged
        Me.Donnee.Nom = TextBox1.Text
    End Sub

    Private Sub TextBox2_TextChanged(sender As Object, e As EventArgs) Handles TextBox2.TextChanged
        Me.Donnee.Prenom = TextBox2.Text
    End Sub

    Private Sub Form2_Activated(sender As Object, e As EventArgs) Handles Me.Activated

        If (Frm1.Donnee IsNot Nothing) Then
            Me.Donnee = Frm1.Donnee
            Me.TextBox1.Text = Me.mDonnee.Nom
            Me.TextBox2.Text = Me.mDonnee.Prenom
        End If

    End Sub

End Class


testé avec VB 2015

K
0
Whismeril Messages postés 19029 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 26 avril 2024 931
6 févr. 2018 à 08:17
Ce qui revient à passer un paramètre au constructeur, méthode expliquée dans le tuto que j’ai mis en lien
0