Bonjour, j'ai une dataGridView1 avec des cases a cocher, dans une ligne je veux pouvoir cocher uniquement une seule cases a la fois, une fois je coche une l'autre qui etait cochée sera decocher automatiquement.
Bonjour, j'ai une dataGridView1 avec des cases a cocher, dans une ligne je veux pouvoir cocher uniquement une seule cases a la fois, une fois je coche une l'autre qui etait cochée sera decocher automatiquement.
Bonjour,
Vous pourriez vous abonner à l'évenement 'cellclick' ou 'celldoubleclick' du datagridview pour passer la cellule concernée avec une coche et les autres sans.
voila c'est ce que j'ai utilisé :
mais la je lui permet de cocher plusieurs, je ne sais pas comment lui empecher de cocher sur une seule uniquement
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 private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e) { #region editer BV if (this.dataGridView1.Rows[0].Cells[13].Selected) { for (int i = 1; i < dataGridView1.ColumnCount - 1; i++) { var val = dataGridView1.Rows[0].Cells[i].Value; if (val == null) { continue; } bool isChecked = bool.Parse(val.ToString()); if (isChecked) { DonneeBV sbv = new DonneeBV(cmbAgr.SelectedItem.ToString(), cmbCVT.SelectedItem.ToString(), Convert.ToInt16(combAnnee.SelectedItem.ToString()), Convert.ToInt16(i)); sbv.Show(); this.Hide(); } } EtatCVTAnnuel(cmbAgr.SelectedItem.ToString(), Convert.ToInt16(combAnnee.SelectedItem.ToString())); } }
Vous n'avez qu'une seule ligne dans votre datagrid ? Si c'est le cas un groupbox avec radiobutton pourrait être plus pratique, à voir selon ce que vous avez à afficher.
Sinon à tester mais cela devrait donner ce que vous voulez :
Code C# : 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 // Vérifier si la cellule est cochée private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e) { if ((bool)dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value == true) { dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value = false; return; } // Cocher la cellule et décocher les autres for (int i = 0; i < dataGridView1.ColumnCount - 1; i++) { if (dataGridView1.Rows[e.RowIndex].Cells[i].Value == null) continue; if (i == e.ColumnIndex) dataGridView1.Rows[e.RowIndex].Cells[i].Value = true; else dataGridView1.Rows[e.RowIndex].Cells[i].Value = false; } }
Partager