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

C# Discussion :

acceder aux éléments de liste en form2 C#


Sujet :

C#

  1. #1
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2014
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2014
    Messages : 36
    Points : 4
    Points
    4
    Par défaut acceder aux éléments de liste en form2 C#
    bonjour

    j'ai un problème je fais une propriété de liste pour acceder a cette liste dans le formulaire2 mais j'obtenue l'erreur suivant

    Accès inégal: type de bien »System.Collections.Generic.List <WindowsFormsApplication1.Client> 'est moins accessible que la propriété

    mon code :

    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    public partial class Form1 : Form
     {
            List<Client> _ListCient= new List<Client>();
            Client C;
            public int pos = 0;
            public int cher;
     
            public List<Client> ListCient
            {
                get { return _ListCient; }
                set { _ListCient = value; }
            }
     
    public partial class Form2 : Form
     {
         public Form2()
         {
            InitializeComponent();
         }
     
    private void OK_Click(object sender, EventArgs e)
           {
               Form1 F1 = (Form1)this.Owner;
     
               F1.cher =  int.Parse(textBox1.Text);
               this.Close();
     
     
               bool t = false;
     
    foreach (Client client in F1.ListCiente)
    {
       if (client.NumReglement == F1.cher)
       {         
            t = true;
          textBox1.Text = client.NumReglement.ToString();
          F1.textbox2 = client.NomClient;
       }
      if (t == false)
        MessageBox.Show("ce numero de regement n'existe pas");
     
    }

  2. #2
    Membre expert
    Avatar de Pragmateek
    Homme Profil pro
    Formateur expert .Net/C#
    Inscrit en
    Mars 2006
    Messages
    2 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Formateur expert .Net/C#
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 635
    Points : 3 958
    Points
    3 958
    Par défaut
    Sans doute que ta classe Client n'est pas publique.

    Le souci est que tu exposes publiquement via une propriété publique un type qui n'est pas visible publiquement, c'est incohérent d'où l'erreur.

    Tu as 2 solutions, la plus pertinente dépendant de ton cas d'utilisation :
    - rendre la propriété ListClient internal comme l'est sûrement la classe Client
    - rendre la classe Client publique.
    Formateur expert .Net/C#/WPF/EF Certifié MCP disponible sur Paris, province et pays limitrophes (enseignement en français uniquement).
    Mon blog : pragmateek.com

  3. #3
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2014
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2014
    Messages : 36
    Points : 4
    Points
    4
    Par défaut
    merci beaucoup mon ami le probème est résoudre rendre la classe publique mais si j'execute le programme affiche le message erreur dans cette ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     F1.cher = int.Parse(textBox1.Text);
    le message est :
    la référence d'objet n'est pas définie à une instance d'un objet.

  4. #4
    Membre expérimenté
    Avatar de charouel
    Homme Profil pro
    Freelance
    Inscrit en
    Mars 2009
    Messages
    618
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2009
    Messages : 618
    Points : 1 454
    Points
    1 454
    Billets dans le blog
    9
    Par défaut
    Oui tu doit faire Form1 F1 = new Form1();
    Il faut ajouter l'instanciation de la classe Form1

  5. #5
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2014
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2014
    Messages : 36
    Points : 4
    Points
    4
    Par défaut
    merci pour ta réponse
    j'atoute Form1 F1 = new Form1();

    mais le même problème

  6. #6
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Citation Envoyé par charouel Voir le message
    Oui tu doit faire Form1 F1 = new Form1();
    Il faut ajouter l'instanciation de la classe Form1
    ça ce n'est pas bon.

    D'après le code que tu as commencé, j'imagine que quelque part tu vas appeler une instance de "Form2" en "Popup" à partir du formulaire "Form1". Car il me semble qu'il manque des bouts de code dans l'extrait.
    Dans ce cas, il te faut appeler Form2 ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Form2 popupForm2=new Form2();
    popupForm2.ShowDialog(this); //Ce doit être fait à partir d'un Handler de bouton dans Form1. "this" désigne alors l'instance actuelle de Form1.
    Et donc quand tu arriveras dans le Handler du bouton "OK" de Form2, le "Owner" sera bien renseigné.
    Dernière modification par Invité ; 05/06/2014 à 20h21.

Discussions similaires

  1. Réponses: 2
    Dernier message: 05/03/2008, 16h12
  2. STL list : acceder aux enfant d'une class depuis un liste
    Par poussinphp dans le forum SL & STL
    Réponses: 6
    Dernier message: 29/04/2007, 17h21
  3. acceder aux valeurs d'une liste
    Par david06600 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 06/04/2007, 17h21
  4. acceder aux valeurs d'une liste
    Par david06600 dans le forum Struts 1
    Réponses: 4
    Dernier message: 07/03/2007, 20h17
  5. Réponses: 7
    Dernier message: 30/03/2006, 10h04

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