/// <summary>
        /// Procédure d'affichage avec comme paramètre
        /// la référence du client à afficher
        /// </summary>
        protected void afficheClient(MClients leClient)
        {
            // this.leClient
            txtBoxNv.Text  = leClient.NumClient.ToString();
            txtBoxRs.Text  = leClient.RaisonSociale.ToString();
            txtBoxAd.Text  = leClient.AdresseClient;
            txtBoxAd2.Text = leClient.AdresseClient2;
            txtBoxCp.Text  = leClient.CodePostal;
            txtBoxVil.Text = leClient.Ville;
            try
            {
                txtBoxTel.Text = leClient.TelephoneClient.ToString();
            }
            catch (TelephoneInvalide)
            {
                if (!(txtBoxTel.Text.Length == 10))
                {
                    MessageBox.Show("Vous devez rentrer dix chiffres, pas plus, pas moins.");
                }
            }

            chkBoxPv2.Checked = leClient.ClientPrive;
            txtBoxEff.Text    = leClient.Effectif.ToString();
            txtBoxCa.Text     = leClient.ChiffreAffaires.ToString();
            //Gné, là ce sont des combobox à modifier

            txtActivite.Text = leClient.Activite;
            txtNature.Text   = leClient.Nature;
        }
        private void btnOK_Click(object sender, EventArgs e)
        {
            // Créer une référence d'objets MClients
            MClients nouveauClient = new MClients();

            //Affectation des variables/propriétés
            nouveauClient.NumClient       = Int32.Parse(base.txtBoxNv.Text.Trim());
            nouveauClient.RaisonSociale   = base.txtBoxRs.Text;
            nouveauClient.AdresseClient   = base.txtBoxAd.Text;
            nouveauClient.AdresseClient2  = base.txtBoxAd2.Text;
            nouveauClient.CodePostal      = base.txtBoxCp.Text;
            nouveauClient.Ville           = base.txtBoxVil.Text;
            nouveauClient.TelephoneClient = base.txtBoxTel.Text;
            nouveauClient.ClientPrive     = base.chkBoxPv2.Checked;
            nouveauClient.Effectif        = Int32.Parse(base.txtBoxEff.Text.Trim());
            nouveauClient.ChiffreAffaires = Int32.Parse(base.txtBoxCa.Text.Trim());
            nouveauClient.Activite        = base.cbBoxAct.Text;
            nouveauClient.Nature          = base.cbBoxNat.Text.ToString();

            //Je ne sais pas comment faire pour les combobox


            if (!(base.cbBoxAct.Items.Contains(base.cbBoxAct.Text)))
            {
                base.cbBoxAct.Items.Add(base.cbBoxAct.Text);
            }

            if (!(base.cbBoxNat.Items.Contains(base.cbBoxNat.Text)))
            {
                base.cbBoxNat.Items.Add(base.cbBoxNat.Text);
            }


            //Numéro du client, qui le définit ?
            // Est ce que le numéro client = rang du client +1 (pour pas avoir de client zéro) ?

            nouveauClient.IClient++;



            //ajouter la référence d'objet MClients dans la collection
            Donnees.arrayClients.Add(nouveauClient);
            // incrémentation compteur de clients
            MClients.NClients++;


            frmListeClients frmListe = new frmListeClients();


            //00h j'ai interverti afficheclient avec show
            frmListe.afficheClient();
            frmListe.Show();
            this.Close();
        }
        /// <summary>
        /// Permet d'afficher dans la datagridView les clients ajoutés
        /// On définit une dataTable qui sera alimentée par les données de nos clients
        /// Cette procédure sera ensuite appelée au niveau dès le chargement du formulaire
        /// (constructeur du form ou evenement load)
        /// </summary>
        public void afficheClient()
        {
            //DataTable permettant de recopier les clients stockés dans la collection
            DataTable dt = new DataTable();
            // Ligne de la dataTable
            DataRow dr;
            //Variable de boucle
            int j;


            dt.Columns.Add(new DataColumn("Raison sociale", typeof(System.String)));
            dt.Columns.Add(new DataColumn("Ville", typeof(System.String)));
            dt.Columns.Add(new DataColumn("Code postal", typeof(System.Int32)));
            dt.Columns.Add(new DataColumn("Privé", typeof(System.Boolean)));
            dt.Columns.Add(new DataColumn("Activité", typeof(System.String)));
            dt.Columns.Add(new DataColumn("Nature", typeof(System.String)));


            // boucle de remplissage de la DataTable à partir de la collection
            for (j = 0; j < Donnees.arrayClients.Count; j++)
            {
                // Seb : pourquoi déjà on instancie ici ? Dans l'exo7 on ne le fait pas (en tous cas pas là)
                MClients client = (MClients)Donnees.getClientById(j);
                //Instanciation de la datarow
                dr = dt.NewRow();
                //Affectation des colonnes
                //Code proposé par Seb
                //Dans l'exo7 voici la syntaxe :
                //dr[0] = ((MClients)(Donnees.ArrayClients[j])).RaisonSociale;
                //etc
                dr[0] = client.RaisonSociale;
                dr[1] = client.Ville;
                dr[2] = client.CodePostal;
                dr[3] = client.ClientPrive;
                dr[4] = client.Activite;
                dr[5] = client.Nature;
                //Ajout de la ligne à la dataTable
                dt.Rows.Add(dr);
            }
            // détermine l'origine des données à afficher dans la datagriedview
            this.grdListe.DataSource = dt.DefaultView;
            // rafraichi le datagriedview
            this.grdListe.Refresh();
            dt = null; // utile ?
            dr = null; // utilité ?
        }
        private void grdListe_DoubleClick(object sender, EventArgs e)
        {
            Int32 iClient;

            iClient = this.grdListe.CurrentRow.Index;

            //Code suivant mis en commentaire : pourquoi ajouter ça ?

            // instancie un objet client vers le form de consultation client d'origine dans la collection
            // Code proposé par Seb
            //Dans l'exo 7
            // MClients leClient = Donnees.ArrayClients[iClient] as MClients
            MClients leClient = Donnees.getClientById(iClient) as MClients;
            // instancie le form "Nouveau Contact" qui correspond à la création du contact

            frmConsultationClient frmConsultation = new frmConsultationClient(leClient);

            // affiche le form de la création de contact en modal
            frmConsultation.ShowDialog();
            // rafaichit la datagriedview quand le form est fermé
            this.afficheClient();
        }
 public frmNouveauContact(MClients client)
 {
     InitializeComponent();
     this.leClient = client;
 }
 /// <summary>
 /// On initialise la référence de l'objet MClient
 /// Le parametre du constructeur sera donc la référence de l'objet Client
 /// à traiter dans ce formulaire
 /// </summary>
 /// <param name="client"></param>
 public frmConsultationClient(MClients client)
 {
     // on crée une référence d'objet stagiaire pointant vers le stagiaire d'origine de la collection
     this.leClient = client;
     InitializeComponent();
 }