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

Windows Forms Discussion :

[VB.Net] Transmission d'information entre 2 Form


Sujet :

Windows Forms

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2006
    Messages : 35
    Points : 25
    Points
    25
    Par défaut [VB.Net] Transmission d'information entre 2 Form
    Bonjour,

    J'ai besoin d'un coup de main,
    J'ai une application Form1 qui est la principal
    Et j'en ai plusieurs autre qui sont des secondaires, mais que mon programme utilise.

    Et j'aimerais que si j'entre une information dans une, qu'elle puisse être récupérer par l'autre form

    Merci d'avance de votre aide

    Jojo

  2. #2
    Membre habitué Avatar de souaddemaroc
    Inscrit en
    Novembre 2005
    Messages
    194
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 194
    Points : 143
    Points
    143
    Par défaut
    1- Et beh vous allez utiliser un variable globale dans le quel vous stockez l'informations à récupérer
    2- Si tu veut récupérer une valeur contenant dans un champ textbox ou un label donc vous devez faire cela dans la deuxième form :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    dim f as new form1(Form d'apres lequel vous vouliez récupérer la valeur)
    dim val as string
    val=f.textbox.text
    C'est tout j'éspère que ça va marché
    La vie semble à un pont et le meilleur de nous c'est ce lui qui le traversent

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2006
    Messages : 35
    Points : 25
    Points
    25
    Par défaut
    Malheureusement j'ai toujours des problèmes ...

    '<nom>' n'est pas un membre de '<nomclasse>'

  4. #4
    Membre habitué Avatar de souaddemaroc
    Inscrit en
    Novembre 2005
    Messages
    194
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 194
    Points : 143
    Points
    143
    Par défaut
    Je te comprend pas

    Essai d'être un peu clair en donnant la structure de votre form et ....
    La vie semble à un pont et le meilleur de nous c'est ce lui qui le traversent

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2006
    Messages : 35
    Points : 25
    Points
    25
    Par défaut
    Ca c'est bon (1)

    Ca aussi (2)

    Mais la il aime pas le .TextBox ...
    Mais ma variable (1) que j'ai appelé est une TextBox
    Ca devrais pourtant toujours aller !

    Et il me dis :
    '<nom>' n'est pas un membre de '<nomclasse>'

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    68
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2004
    Messages : 68
    Points : 86
    Points
    86
    Par défaut
    Il faut que l'instance de chaque form soit 'visible' par les autres, une solution consiste à créer un module dans lequel les forms sont déclarées en Public.

    Par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    
    
    Module Declarations
    Public _Articles As RerchercheArticle Public _Interro As InterrogationCommerciale
    EndModule
    Une fois qu'elles auront été instanciées (dans la classe qui gère les menus) on a accès à tous les objets.

    Par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    
    If _Articles IsNotNothingThen
    
    
    TextBox1.Text = _Articles.TextBox1.Text
    EndIf
    Quand il s'agit de passer un paramètre lors de la création d'une form, le plus simple est d'utiliser un constructeur (cela évite de mettre les forms en public) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    
    
    PrivateSubNew(ByVal Paramètre AsString)
    TextBox1.Text = Paramètre
    EndSub

  7. #7
    Membre habitué
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2005
    Messages
    201
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 201
    Points : 173
    Points
    173
    Par défaut
    SALut
    C'est pas necessaire de crée un module et de y declaré tout les forms.
    voila un exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Dim r As New form1
    r.tonTextbox1.Text = "valeur"
    r.tontextbox2.Text = "valeur"
    ...
    r.ShowDialog() 'la tu charge la form avec les valeurs que tu veut
    
    ce code marche perfect.

    Si tu veut que : en meme temps que tu ecrit dans la form 1 la form 2 recupere la valeur, c'est pas simple, il te faut un ecouteur qui justement ecoute ce que tu fait dans la fenetre en question.Ceci entre dans la programation Client/Server. En fin c'est ce que je sais sinon j'ai rien dit.

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    68
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2004
    Messages : 68
    Points : 86
    Points
    86
    Par défaut
    On peut en effet se passer d’un module pour déclarer les instances des forms qui vont s’échanger des données, mais dans ce cas seule la classe ayant instancié les autres forms pourra interroger leurs variables.

    Dans le cas d’un module cela n’a pas d’importance puisque les déclarations du module sont visibles par toutes les classes du projet, en outre cela permet l’échange de données entre plusieurs fenêtres déjà ouvertes sans complication supplémentaire.

  9. #9
    Membre expérimenté Avatar de davcha
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 258
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 258
    Points : 1 539
    Points
    1 539
    Par défaut
    Citation Envoyé par Bob Langlade
    Quand il s'agit de passer un paramètre lors de la création d'une form, le plus simple est d'utiliser un constructeur (cela évite de mettre les forms en public) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    
    
    PrivateSubNew(ByVal Paramètre AsString)
    TextBox1.Text = Paramètre
    EndSub
    C'est une bonne méthode.

    Sinon, pour accéder à des membres à priori privés d'une form A depuis une form B, il vaut mieux utiliser des propriétés.

    En effet, si tu définis la visibilité de ton TextBox1 publique, tu vas pouvoir notemment faire un : A.TextBox1.Dispose(); depuis une instance de B (ce qui est vraiment pas une bonne idée).

    Mieux vaut définir une propriété comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Public Property TextBox1Text As String
      Get
        TextBox1Text = TextBox1.Text
      End Get
      Set
        TextBox1.Text = TextBox1Text
      End Set
    End Property
    De cette façon, on ne peut accéder qu'à TextBox1.Text depuis l'extérieur de la form où TextBox1 est définie.

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

Discussions similaires

  1. Mise a jour d'information entre 2 Form.
    Par CEDupuis dans le forum C#
    Réponses: 7
    Dernier message: 25/03/2010, 20h54
  2. Transmission d'informations entre deux fenêtres ouvertes
    Par lnplnp dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 02/02/2007, 12h04
  3. [VB.NET] Passer une valeur de control entre deux form
    Par TheMacleod dans le forum Windows Forms
    Réponses: 5
    Dernier message: 27/12/2005, 11h07
  4. [VB.NET] Partager un dataset entre 2 windows forms ???
    Par kissskoool dans le forum Windows Forms
    Réponses: 11
    Dernier message: 26/07/2005, 11h34
  5. [VB.NET] Perte de focus entre deux form
    Par toniolol dans le forum Windows Forms
    Réponses: 2
    Dernier message: 05/07/2005, 08h00

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