bonjour a tous,
j ai un datatable Requete qui est initialiser a l execution par la lecture d une table.
Ce datatable devient datasource de mon datagrid, toujours a l execution. Mon datagrid contient une colonne checkBox, cette colonne affiche le contenu d'une colonne de mon datatable (colonne de type char(1) qui vaut 1 ou null).
A l affichage de mon datagrid, pas de probleme, si ma colonne vaut 1, la checkbox est cochee, sinon elle vaut null, la checkbox est decochee.
Mantenant, contrairement au fonctionnement normal du datagrid, je veux modifier la valeuir de ma checkbox par un simple clic sur celle ci. Et c est la que ca ne fonctionne pas. Voice mon code:
La ligne en commentaire ne fonctionne pas, lorsque que l on clique deux fois de suite sur la meme case, j ai une erreur. Pour les autres cas, ca fonctionne.
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 private void DTG_Requete_MouseUp(object sender, System.Windows.Forms.MouseEventArgs e) { DataGrid.HitTestInfo hti = this.DTG_Requete.HitTest(e.X, e.Y); try { if( hti.Type == DataGrid.HitTestType.Cell && hti.Column == myCheckBoxCol) { //this.DTG_Requete[hti.Row, myCheckBoxCol] = ! (bool) this.DTG_Requete[hti.Row, myCheckBoxCol]; Requete.Rows[hti.Row][myCheckBoxCol] = (this.Requete.Rows[hti.Row][myCheckBoxCol].ToString() == "1" ? "0":"1"); } } catch(Exception ex) { MessageBox.Show(ex.ToString()); } }
La ligne du dessous fonctionne sauf dans le cas ou on clique deux fois de suite sur la meme case, la premiere fois, la valeur change, la deuxieme fois il ne se passe rien (si ce n est que en debut de ligne apparait le stylo a la place de la fleche) et la troisieme fois, la valeur change, on revient au fonctionnement normal d un double clic.
Je ne comprend pas, pouvez vous m aider.
Partager