Variable d'une forme à une autre

[Résolu]
Signaler
Messages postés
36
Date d'inscription
mardi 29 mars 2005
Statut
Membre
Dernière intervention
24 décembre 2009
-
Messages postés
36
Date d'inscription
mardi 29 mars 2005
Statut
Membre
Dernière intervention
24 décembre 2009
-
Bonjour,

J'ai un premier écran qui affiche les propriétés d'un client
sur cet écran je peux appeller un second écran ( showdialog) qui contient la liste des clients pour en choisir un.
Sur ce second écran j'ai une variable publique qui contient chaque fois l Id du client sur lequel je me trouve dans la liste.
Lorsque je ferme cet écran, je voudrais récupérer sur mon premier écran cette variable avec la bonne valeur mais celle-ci est initialisée


Pour quitter ma seconde forme je fais un .close

Est-ce possible de faire ce que je souhaite faire ?
Dois-je utiliser une autre instruction que le .close pour fermer mon second écran?

Merci de votre aide

5 réponses

Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
47
salut,

dans une FORM3, pose 2 boutons et une textbox

Public Class Form3
    Private mUser As String = String.Empty
    Public ReadOnly Property User() As String
        Get
            Me.ShowDialog()
            Return mUser
        End Get
    End Property

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        'valider !
        mUser = TextBox1.Text
        Me.Close()
    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        'annuler !
        Me.Close()
    End Sub



    'CODE ESTHéTIQUE...
    Private Sub Form3_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Me.MoveCtrl(TextBox1, 12, 12, 225, 20)
        Me.MoveCtrl(Button1, 61, 12, 97, 23, "Valider")
        Me.MoveCtrl(Button2, 61, 142, 97, 23, "Annuler")
        Me.MoveCtrl(Me, 0, 0, 263, 126, "Saisissez votre nom")
    End Sub

    Private Sub MoveCtrl(ByVal oCtrl As Object, ByVal iTop As Integer, ByVal iLeft As Integer, ByVal iWidth As Integer, ByVal iHeight As Integer, Optional ByVal Caption As String = "")
        If TypeOf oCtrl Is System.Windows.Forms.TextBox Then
            With DirectCast(oCtrl, System.Windows.Forms.TextBox)
                .Top = iTop
                .Left = iLeft
                .Width = iWidth
                .Height = iHeight
            End With

        ElseIf TypeOf oCtrl Is System.Windows.Forms.Button Then
            With DirectCast(oCtrl, System.Windows.Forms.Button)
                .Top = iTop
                .Left = iLeft
                .Width = iWidth
                .Height = iHeight
                .Text = Caption
            End With

        ElseIf TypeOf oCtrl Is System.Windows.Forms.Form Then
            With DirectCast(oCtrl, System.Windows.Forms.Form)
                .Width = iWidth
                .Height = iHeight
                .Text = Caption
            End With

        End If
    End Sub
End Class



dans une FORM2, pose un bouton

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        'on récupère la saisie utilisateur, sera vide en cas d'annulation ou de non remplissage

        'CAS 1 => en cas de réouverture la form3 aura conservé la saisie
        Dim sRet1 As String = Form3.User

        'CAS2 => toujours une fenêtre vierge
        Dim f As New Form3
        Dim sRet2 As String = f.User

    End Sub


++
[hr]
Messages postés
36
Date d'inscription
mardi 29 mars 2005
Statut
Membre
Dernière intervention
24 décembre 2009

"mais celle-ci est réinitialisée à chaque fois à zéro"
Messages postés
17288
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
70
.Close ca va, le tout étant de transmettre a la form appelante l'ID du client concernée AVANT de fermer la Seconde Form.


Renfield - Admin CodeS-SourceS - MVP Visual Basic
Messages postés
36
Date d'inscription
mardi 29 mars 2005
Statut
Membre
Dernière intervention
24 décembre 2009

C'est marrant en vb6 ca fonctionnait mon bazard.

Merci pour la réponse je vais tout de même essayer de trouver un moyen .
Messages postés
36
Date d'inscription
mardi 29 mars 2005
Statut
Membre
Dernière intervention
24 décembre 2009

Merci.

En fait un pote avait fait une routine dans la fermeture du second écran ou il y avait un .dispose
Tout fonctionne nickel now

Merci à tous