private void buttonAjoutLicencie_Click(object sender, EventArgs e) //Affiche le formulaire d'ajout de licencié { try { //création et affichage du formulaire (vide dû au constructeur 1, pas d'infos à insérer) FormGestionLicenciesAjout ajoutLicencie = new FormGestionLicenciesAjout(textBoxGestionNom.Text, textBoxGestionPrenom.Text); ajoutLicencie.SetMetier(_metier); ajoutLicencie.ShowDialog();//le nouveau formulaire obtient la priorité (un seul form ouvert à la fois) //si l'utilisateur a confirmé l'ajout (bouton Terminer du formulaire), on actualise la grille de résultats if (ajoutLicencie.DialogResult == DialogResult.OK) { dataGridViewGestionLicencies.Rows.Add(); int idx = dataGridViewGestionLicencies.Rows.Count - 1; if (idx > 0) { dataGridViewGestionLicencies.Rows[idx].HeaderCell.Value = String.Format("{0}", dataGridViewGestionLicencies.Rows[idx].Index + 1); } else { dataGridViewGestionLicencies.Rows[idx].HeaderCell.Value = String.Format("{0}", 1); } dataGridViewGestionLicencies[0, idx].Value = ajoutLicencie.GetNewNom(); dataGridViewGestionLicencies[1, idx].Value = ajoutLicencie.GetNewPrenom(); dataGridViewGestionLicencies[2, idx].Value = ajoutLicencie.GetNewDateNaissance(); dataGridViewGestionLicencies[3, idx].Value = ajoutLicencie.GetNewMail(); dataGridViewGestionLicencies[4, idx].Value = "EDIT"; dataGridViewGestionLicencies[5, idx].Value = "RÉINSC"; dataGridViewGestionLicencies[6, idx].Value = "SUPPR"; } } catch (Exception ex) { MessageBox.Show(ex.Message); } }
private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e) //Gère l'édition, la réinscription et la suppression d'un licencié parmis les résultats de la recherche { try { var senderGrid = (DataGridView)sender; //on ne regarde que les clicks sur un bouton ici if (senderGrid.Columns[e.ColumnIndex] is DataGridViewButtonColumn && e.RowIndex >= 0) { //si le user choisit de supprimer un licencié if (senderGrid.Columns[e.ColumnIndex].HeaderText == "Suppression") { //on demande une confirmation car l'opération est irresversible var confirm = DialogResult.No; confirm = MessageBox.Show("Vous allez supprimer le licencié :" + senderGrid[0, e.RowIndex].Value + " " + senderGrid[1, e.RowIndex].Value + " (" + senderGrid[2, e.RowIndex].Value + ").\nÊtes-vous sûr ?", "Confirmation", MessageBoxButtons.YesNo); if (confirm == DialogResult.Yes) { //on supprime le licencié dans la BDD _metier.SupprimerLicencie(senderGrid[0, e.RowIndex].Value.ToString(), senderGrid[1, e.RowIndex].Value.ToString(), senderGrid[3, e.RowIndex].Value.ToString()); //on supprime le licencié dans la grille des résultats et on actualise les indexs des lignes dataGridViewGestionLicencies.Rows.RemoveAt(e.RowIndex); for (int i = e.RowIndex; i < dataGridViewGestionLicencies.Rows.Count; i++) { dataGridViewGestionLicencies.Rows[i].HeaderCell.Value = String.Format("{0}", dataGridViewGestionLicencies.Rows[i].Index + 1); } } } //si le user choisit de réinscrire le licencié (année en cours ou suivante) if (senderGrid.Columns[e.ColumnIndex].HeaderText == "Réinscription") { //initialisation des entités Licencie lcn = null; Telephone[] tel = null; string[] idsnc = null; //on récupère les informations de la BDD dans les entités ci-dessus (via les refs ci-dessous) _metier.GetLicencie(senderGrid[0, e.RowIndex].Value.ToString(), senderGrid[1, e.RowIndex].Value.ToString(), senderGrid[3, e.RowIndex].Value.ToString(), ref lcn, ref tel, ref idsnc); //Création/remplissage/affichage du formulaire de réinscription via le constructeur 2 (infos pré-complétées) FormGestionLicenciesAjout ReinscrireLicencie = new FormGestionLicenciesAjout("réinscription", lcn, tel, idsnc, senderGrid[0, e.RowIndex].Value.ToString(), senderGrid[1, e.RowIndex].Value.ToString(), senderGrid[3, e.RowIndex].Value.ToString()); ReinscrireLicencie.SetMetier(_metier); ReinscrireLicencie.RemplirChamps(); ReinscrireLicencie.ShowDialog(); // priorité donc un seul form de ce type à la fois //si le user a confirmé la réinscription (bouton Terminer du formulaire), on actualise la grille de résultats if (ReinscrireLicencie.DialogResult == DialogResult.OK) { senderGrid[0, e.RowIndex].Value = ReinscrireLicencie.GetNewNom(); senderGrid[1, e.RowIndex].Value = ReinscrireLicencie.GetNewPrenom(); senderGrid[2, e.RowIndex].Value = ReinscrireLicencie.GetNewDateNaissance(); senderGrid[3, e.RowIndex].Value = ReinscrireLicencie.GetNewMail(); } } //si le user choisit d'éditer les infos du licencié (année en cours uniquement) if (senderGrid.Columns[e.ColumnIndex].HeaderText == "Édition") { //initialisation des entités Licencie lcn = null; Telephone[] tel = null; string[] idsnc = null; //on récupère les informations de la BDD dans les entités ci-dessus (via les refs ci-dessous) _metier.GetLicencie(senderGrid[0, e.RowIndex].Value.ToString(), senderGrid[1, e.RowIndex].Value.ToString(), senderGrid[3, e.RowIndex].Value.ToString(), ref lcn, ref tel, ref idsnc); //Création/remplissage/affichage du formulaire d'édition via le constructeur 2 (infos pré-complétées) FormGestionLicenciesAjout EditerLicencie = new FormGestionLicenciesAjout("édition", lcn, tel, idsnc, senderGrid[0, e.RowIndex].Value.ToString(), senderGrid[1, e.RowIndex].Value.ToString(), senderGrid[3, e.RowIndex].Value.ToString()); EditerLicencie.SetMetier(_metier); EditerLicencie.RemplirChamps(); EditerLicencie.ShowDialog(); // priorité donc un seul form de ce type à la fois //si le user a confirmé l'édition (bouton Terminer du formulaire), on actualise la grille de résultats if (EditerLicencie.DialogResult == DialogResult.OK) { senderGrid[0, e.RowIndex].Value = EditerLicencie.GetNewNom(); senderGrid[1, e.RowIndex].Value = EditerLicencie.GetNewPrenom(); senderGrid[2, e.RowIndex].Value = EditerLicencie.GetNewDateNaissance(); senderGrid[3, e.RowIndex].Value = EditerLicencie.GetNewMail(); } } } } catch (Exception ex) { MessageBox.Show(ex.Message); } }