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 :

Passage de paramètre entre form


Sujet :

Windows Forms

  1. #1
    Nouveau membre du Club
    Profil pro
    Architecte Cloud
    Inscrit en
    Mars 2009
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Architecte Cloud

    Informations forums :
    Inscription : Mars 2009
    Messages : 27
    Points : 33
    Points
    33
    Par défaut Passage de paramètre entre form
    Bonjour à tous,

    Voici mon petit soucis:
    J'ai un UserControl qui réalise mes traitements, mais un des traitements nécessite des infos sur l'utilisateur.
    J'ai créé une nouvelle form pour demande à l'utilisateur de les saisir, mais problème je n'arrive pas à les récupérer dans mon UC.

    Voici le code d'appel de ma form fLogin:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Form login = new fLogin(myUser); //le myUser est déjà récupéré pour autre chose, mais au cas où l'utilisateur voudrait le modifier
     
    login.ShowDialog(this);
    Et dans ma form fLogin, j'ai ça:

    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
     
    public partial class fLogin : Form
        {
            private string _user, _pass, _domaine;
            public fAdmin(string user)
            {
                InitializeComponent();
                userText.Text = user;
            }
     
            private void loginButton_Click(object sender, EventArgs e)
            {
                _user = userText.Text;
                _pass = passText.Text;
                _domaine = domaineText.Text;
                this.Close();
            }
            public string User
            {
                get {return this._user;}
            }
            public string Pass
            {
                get {return this._pass;}
            }
            public string Domaine
            {
                get {return this._domaine;}
            }
        }
    Je pensais pouvoir accéder correctement à login.User vu que c'est en public, mais non

    Quelqu'un sait-il comment on peut faire pour récupérer mes 3 paramètres dans l'UC?

    Merci d'avance de votre aide!

  2. #2
    Membre actif
    Inscrit en
    Octobre 2007
    Messages
    236
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Octobre 2007
    Messages : 236
    Points : 233
    Points
    233
    Par défaut
    Rendre _user, _pass et _domaine public résoudera le probléme.

    Edit :
    Pardon, j'ai pas terminé la lecture du code. Il faut pas fermer le formulaire qu'après la lecture des informations voulu. Essais un Hide() et après lecture des données fais un Close()

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 62
    Points : 63
    Points
    63
    Par défaut
    ya pas mal de post sur le sujet !

    mais sinon en gros tu peux faire la méthode crado : tu déclares tes variables en static et du coup tu peux t en servir partout.

    Ou sinon tu fait du passage par paramettre (ce qui est mieu).

    Enfin c est un résumé assez rapide, mais si tu veux avoir des reponses plus poussées, cherche un peu sur le forum le sujet a été traité pas mal de fois,

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    15
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 15
    Points : 14
    Points
    14
    Par défaut
    Non justement, il y a des getters public pour ne pas avoir à déclarer les variables en public. C'est suffisant pour accéder aux données.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Form login = new fLogin(myUser); //le myUser est déjà récupéré pour autre chose, mais au cas où l'utilisateur voudrait le modifier
     
    login.ShowDialog(this);
     
    MessageBox.Show(login.User);
    Ça ne marche pas ça tu es sur ??

  5. #5
    Membre averti Avatar de roster
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    397
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 397
    Points : 426
    Points
    426
    Par défaut
    J'aurai fait comme çà:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     private static string _user, _pass, _domaine;
     
    ...
     
     public static string User
            {
                get {return _user;}
            }
    Est-ce une bonne pratique?

  6. #6
    Membre actif
    Inscrit en
    Octobre 2007
    Messages
    236
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Octobre 2007
    Messages : 236
    Points : 233
    Points
    233
    Par défaut
    Citation Envoyé par Herzim Voir le message
    Non justement, il y a des getters public pour ne pas avoir à déclarer les variables en public. C'est suffisant pour accéder aux données.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Form login = new fLogin(myUser); //le myUser est déjà récupéré pour autre chose, mais au cas où l'utilisateur voudrait le modifier
     
    login.ShowDialog(this);
     
    MessageBox.Show(login.User);
    Ça ne marche pas ça tu es sur ??
    Quand tu exécute la ligne suivante, le Form login est dit Disposed par l'appel de Close() dans le bouton OK où tu peux faire un Hide() et quand tu terminera la lecture des données tu fais un Close().

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    MessageBox.Show(login.User); // Form login Disposed!

  7. #7
    Nouveau membre du Club
    Profil pro
    Architecte Cloud
    Inscrit en
    Mars 2009
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Architecte Cloud

    Informations forums :
    Inscription : Mars 2009
    Messages : 27
    Points : 33
    Points
    33
    Par défaut
    En fait ça je ne peux même pas le compiler, j'obtiens cette erreur

    Error 1 'System.Windows.Forms.Form' does not contain a definition for 'User' and no extension method 'User' accepting a first argument of type 'System.Windows.Forms.Form' could be found (are you missing a using directive or an assembly reference?)
    User ne semble pas exister pour mon UC

  8. #8
    Membre actif
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    203
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 203
    Points : 220
    Points
    220
    Par défaut
    Il faut que "login" soit du type "fLoginlogin " si tu veux pouvoir acceder à la propriété "User"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fLoginlogin login  = new fLogin(myUser);

  9. #9
    Nouveau membre du Club
    Profil pro
    Architecte Cloud
    Inscrit en
    Mars 2009
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Architecte Cloud

    Informations forums :
    Inscription : Mars 2009
    Messages : 27
    Points : 33
    Points
    33
    Par défaut
    Presque

    Mais merci j'ai trouvé grâce à ton truc

    En fait la déclaration de la nouvelle form était mauvaise:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Form login = new fLogin(myUser);
    au lieu de:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    fLogin login = new fLogin(myUser);
    Merci à tous en tout cas!

  10. #10
    Membre émérite Avatar de Guulh
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    2 160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 2 160
    Points : 2 925
    Points
    2 925
    Par défaut
    Citation Envoyé par roster Voir le message
    J'aurai fait comme çà:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     private static string _user, _pass, _domaine;
    ...
     public static string User { get {return _user;}  }
    Est-ce une bonne pratique?
    Non. Ce que tu fais revient à utiliser des variables globales, puisque tes variables sont accessibles depuis partout dans ton code ; et ça, c'est le début des ennuis...

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

Discussions similaires

  1. [Débutant] Passage de paramètre entre Form
    Par didou038 dans le forum VB.NET
    Réponses: 7
    Dernier message: 30/01/2015, 21h34
  2. Problème passage de paramètre entre form
    Par Zhamy dans le forum C#
    Réponses: 5
    Dernier message: 03/05/2010, 18h30
  3. Passage de paramètres entre form
    Par thierry007 dans le forum Windows Forms
    Réponses: 4
    Dernier message: 13/02/2007, 13h21
  4. [Forms 6i] Passage de paramètres entre forms
    Par tmcgrady dans le forum Forms
    Réponses: 8
    Dernier message: 18/03/2006, 04h04
  5. [Forms]Passage de paramètre entre Forms et Reports
    Par jack554 dans le forum Reports
    Réponses: 4
    Dernier message: 30/03/2004, 14h58

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