Bonjour tout le monde,
Le titre n'est pas assez explicite car c'est assez difficile à expliquer en une seule petite phrase =).
J'vais essayer de m'expliquer au mieux :
J'ai un DataGridView avec des champs remplis (tout ce qu'il y a de plus basique), et lorsque je clique sur une ligne, d'autres données apparaissent dans un autre DataGridView (jusque là, ça roule).
J'ai implémenter un petit drag & drop utilisant un évènement MouseMove pour pouvoir copier/coller le texte sur lequel je clique (qu'il soit dans n'importe quelle colonne ou ligne) qui fonctionne bien :
Ce que j'aimerai faire, c'est que, qu'importe si l'utilisateur utilise l'évènement MouseDown sur la ligne pour copier/coller quelque chose, la ligne soit tout de même sélectionnée (ce qui n'est pas le cas).
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 static void aDGV_MouseMove(object sender, MouseEventArgs e) { if (e.Button == MouseButtons.Left) { DataGridView dgv = (DataGridView)sender; int x = dgv.HitTest(e.X, e.Y).ColumnIndex; int y = dgv.HitTest(e.X, e.Y).RowIndex; if (x >= 0 && y >= 0) { object cellValue = dgv[x, y].Value; if (cellValue != null) ((DataGridView)sender).DoDragDrop(cellValue.ToString(), DragDropEffects.Copy); } } }
Pour pallier le tout, cette implémentation se fait dans un helper et j'aimerai bien entendu que ceci fonctionne pour n'importe quel DataGridView, et je dois dire que je bug...
Quelqu'un aurait-il déjà rencontrer ce cas ? Si oui, auriez-vous la solution à ce problème ?
Merci de votre aide.
Partager