Variable d'une forme à une autre

Résolu
t0ine Messages postés 36 Date d'inscription mardi 29 mars 2005 Statut Membre Dernière intervention 24 décembre 2009 - 24 déc. 2009 à 13:54
t0ine Messages postés 36 Date d'inscription mardi 29 mars 2005 Statut Membre Dernière intervention 24 décembre 2009 - 24 déc. 2009 à 14:44
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

PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
24 déc. 2009 à 14:41
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]
3
t0ine Messages postés 36 Date d'inscription mardi 29 mars 2005 Statut Membre Dernière intervention 24 décembre 2009
24 déc. 2009 à 13:55
"mais celle-ci est réinitialisée à chaque fois à zéro"
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
24 déc. 2009 à 14:00
.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
0
t0ine Messages postés 36 Date d'inscription mardi 29 mars 2005 Statut Membre Dernière intervention 24 décembre 2009
24 déc. 2009 à 14:04
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 .
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
t0ine Messages postés 36 Date d'inscription mardi 29 mars 2005 Statut Membre Dernière intervention 24 décembre 2009
24 déc. 2009 à 14:44
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
0
Rejoignez-nous