bonjour
je suis débutante je souhaite savoir comment affecter un caractère à la cellule cliqué dans une datagridview?
merci pour votre aide
Version imprimable
bonjour
je suis débutante je souhaite savoir comment affecter un caractère à la cellule cliqué dans une datagridview?
merci pour votre aide
Si j'ai bien compris ta question voici un exemple :
J'ai donc pris un objet datagridview, un bouton pour remplir celui-ci et lorsque l'on clique dans une cellule celui-ci demande une valeur a remplacer et enfin il remplir la cellule sélectionnée par la nouvelle valeur.
:PCitation:
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
'--Remplir le data grid view pour le test
For ae As Integer = 0 To 100
DataGridView1.Rows.Add()
For az As Integer = 0 To 4
DataGridView1(az, DataGridView1.Rows.Count - 2).Value = "Valeur Lig : " & ae.ToString & " Col : " & az.ToString
Next
Next
End Sub
Private Sub DataGridView1_CellContentClick(sender As System.Object, e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellContentClick
'--- Afficher la colonne et la ligne sélectionnée par l'utilisateur
MsgBox("col click : " & DataGridView1.CurrentCellAddress.X.ToString & _
"Ligne click : " & DataGridView1.CurrentCellAddress.Y.ToString)
'--- Changer la valeur par l'intruction IMPUTBOX
DataGridView1(DataGridView1.CurrentCellAddress.X, DataGridView1.CurrentCellAddress.Y).Value = InputBox("Nouvelle valeur")
End Sub
Le tutoriel de Philippe (Lasserre) explique en détail ta demande
merci pour votre réponse
cela fonctionne lorsque la cellule contient déjà une valeur.
en fait j'ai une datagridview et je souhaite lorsque je clique sur une cellule vide, une étoile sera affectée à cette cellule pour la marquer
Doit-on pouvoir modifier directement dans la cellule ou pas ? :P
non, un simple clic affecte une étoile à la cellule cliquée
Essaye :
Code:
1
2
3
4
5
6
7
8
9
10
11 Private Sub DataGridView1_CellClick(sender As Object, e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellClick '--- Teste si la cellule est vide ou NULL If IsDBNull(DataGridView1(DataGridView1.CurrentCellAddress.X, DataGridView1.CurrentCellAddress.Y)) Or _ DataGridView1(DataGridView1.CurrentCellAddress.X, DataGridView1.CurrentCellAddress.Y).Value = "" Then '--- Ok on inscrit une valeur DataGridView1(e.ColumnIndex, e.RowIndex).Value = "*" End If End Sub
j'ai essayé le code :( rien ne se passe
Je viens a nouveau de le tester, le code fonctionne, essaye-le dans un nouveau projet, ou alors il me faut plus de renseignements pour savoir le hic.
Je clique :
Citation:
si la zone est vide il inscrit directement l'étoile dans la cellule sélectionnée et si il y a une valeur il propose de changer.
es-tu dans le bon évènement ?
:lol:Citation:
DataGridView1_CellClick
merci infiniment :ccool:
effectivement je n'utilisais pas le bon evenement
le problème n'a pas été complètement résolu
en fait, dans la même forme, je crée dynamiquement plusieurs datagridview et à chaque fois j'utilise addhandler pour ajouter l'évenement cellclick à la datagridview.
Ensuite, j'utilise la fonction affichEtoile
ce code ne fonctionne plus pour une datagridview crée dynamiquementCode:
1
2
3
4
5
6
7
8
9
10 Private Sub AffichEtoile(ByVal sender As Object, ByVal e As System.EventArgs) 'Ici sender = à l'objet qui à caller la procédure... fais le code que tu souhaites ! If IsDBNull(dtg(dtg.CurrentCellAddress.X, dtg.CurrentCellAddress.Y)) Or _ dtg(dtg.CurrentCellAddress.X, dtg.CurrentCellAddress.Y).Value = "" Then '--- Ok on inscrit une valeur dtg(e.ColumnIndex, e.RowIndex).Value = "*" End If End Sub
il m'affiche l'erreur suivante:QUe dois je faire?Citation:
'ColumnIndex' is not a member of 'System.EventArgs'.
C'est parce que la signature de ton évènement n'est pas la bonne
Code:
1
2 Private Sub taDGV_CellClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) _ Handles taDGV.CellClick
merci