[C# 2.0]Datagridview --> Checkbox column - Comment checker la case ?
Bonjour, je suis assez agacer par le contrôle Datagridview qui me paraissait presque parafait jusque là...
En effet je cherche à traiter un clic sur une cellule dont le type est DataGridViewCheckBoxCell mias je n'y parvient pas. J'ai lu pas mal de posts sur les différent Forum MSDN, ici et ailleurs mais je n'ai jamais trouver le moyen de réaliser mon traitement proprement et sûrement. J'ai d'ailleurs lu tout et n'importe quoi...:roll: et moi même fait tout est n'importe quoi sans résultat...
ref voici comment je procède pour "checké" la case. mon problème est de tester l'état de cette dernière :
Code:
1 2 3 4 5
|
void dataGridViewItems_CellContentClick(object sender, System.Windows.Forms.DataGridViewCellEventArgs e)
{
this.dataGridViewItems.Rows[e.RowIndex].Cells[e.ColumnIndex].Value = 1;
} |
ca marche très bien, mais pour tester la valeur
Code:
1 2
|
this.dataGridViewItems.Rows[e.RowIndex].Cells[e.ColumnIndex].Value |
ben là je cale. le type est DataGridViewCheckBoxCell, donc j'ai bien essayé d'instancié un objet de ce type et de l'initialisé :
Code:
1 2 3 4 5 6 7 8 9 10 11 12
|
DataGridViewCheckBoxCell maCell = new DataGridViewCheckBoxCell();
maCell = (DataGridViewCheckBoxCell)this.dataGridViewItems.Rows[e.RowIndex].Cells[e.ColumnIndex];
maCell.Value = 1; //fonctionne pour cocher la case
//mais ceci ne fonctionne pas pour tester la valeur de la case
if((bool)maCell.value == true)
//....
//ceci non plus... fallait tenter quand meme on sait jamais
if(Int32.parse(maCell.value.ToString()) == 1)
//.... |
bref je sius à cours d'idée...
si quelqu'un aurait une explication quelquonque... merci d'avance
;)
le check box de la premiere ligne ne change pas
Salut
To petit post ici m'a bien servi merci j'ai néanmoins un drole de truc
J'utilise une boucle pour swapper les valeurs checked / unchecked d'une colonne checkbox dans un DGV quand uµon clique sur le header
Ca marche presque bien sauf que la premiere ligne n'afiche pas le siggne check, pourtant la valeur est bien "true"
Voici la boucle que j'utilise.
Ce qui est curieux c'est que c'est le row[0] qui veut pas reagir, si je demare la boucle a 1 j'ai visuellement exactement le meme resultat, sauf que dans ce cas rows[0] reste null
Aurais-tu une idée ?
Code:
1 2 3 4 5 6 7 8 9 10 11
| for (int i = 0; i < dgv_viewTour.RowCount; i++)
{
if ((bool)dgv_viewTour.Rows[i].Cells[0].FormattedValue.Equals(false))
{
dgv_viewTour.Rows[i].Cells[0].Value = true;
}
else
{
dgv_viewTour.Rows[i].Cells[0].Value = false;
}
} |