Drag and drop entre 2 datagridview [Résolu]

Messages postés
3
Date d'inscription
mercredi 27 octobre 2004
Dernière intervention
26 mars 2010
- - Dernière réponse : aymen_oussama
Messages postés
8
Date d'inscription
dimanche 18 mars 2007
Dernière intervention
29 juillet 2010
- 28 juil. 2010 à 01:02
Bonjour,

Dans un form, j'ai 2 datagridview ( chacun d'eux avec des colonnes de type DataGridViewImageColumn ). Je voudrais faire un drag and drop d' un Datagrid vers l'autre.Tout fonctionne, sauf que ..... le drop ne se fait jamais dans la bonne cellule. Je ne comprends pas pourquoi !!! Quelqu'un pourrait-il m'aider ? Merci.

Voici mon code :

private

void TargetDataGridView_DragDrop(
object sender,
DragEventArgs e)
{
   D
ataGridView.
HitTestInfo myHitTest;
   myHitTest = TargetDataGridView
.HitTest(e.X, e.Y);  TargetDataGridView
.Rows[myHitTest.RowIndex].Cells[myHitTest.ColumnIndex].Value = e.Data.GetData(

DataFormats.Bitmap);

}

Zlorg
Afficher la suite 

Votre réponse

3 réponses

Meilleure réponse
Messages postés
3
Date d'inscription
mercredi 27 octobre 2004
Dernière intervention
26 mars 2010
3
Merci
Bon, finalement, j'ai trouvé, je donne la solution, ça pourra peut être, être utile à certains ...  mais il faut utiliser  PointToClient

Voici le code ...

private

void DataGridView1_DragDrop(
object sender,
DragEventArgs e){

DataGridView.
HitTestInfo myHitTest;

Point PointArrivee =
new
Point();

Point PointClient =
new
Point();

//Récup des coordonnées du clic dans le form
PointArrivee.X = e.X;
PointArrivee.Y = e.Y;

//Conversion coordonnées dans le datagridview
PointClient =DataGridView1.PointToClient(PointArrivee);

//Recup du HitTestInfo
myHitTest =DataGridView1.HitTest(PointClient.X,PointClient.Y );

//Affichage de l'image dans la cellule
DataGridView1.Rows[myHitTest.RowIndex].Cells[myHitTest.ColumnIndex].Value = e.Data.GetData(
DataFormats.Bitmap);

}

Zlorg

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 106 internautes ce mois-ci

Commenter la réponse de zlorg
Messages postés
8
Date d'inscription
dimanche 18 mars 2007
Dernière intervention
29 juillet 2010
0
Merci
Bonjour à tt le monde
je voudrai savoir comment je peut glisse déplacer un DataRow d'un DataGridView à un autre
mon code est le suivant :
'Le DataGridView source auquel on va copier la ligne
[b]Private Sub DataGridView1_MouseDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles DataGridView1.MouseDown
Try
If e.Button = Windows.Forms.MouseButtons.Left Then
'on récupére l'index du Row sélectionner
Dim Index As Integer
Index = DataGridView1.HitTest(e.X, e.Y).RowIndex
If Index > -1 Then
DataGridView1.DoDragDrop(DataGridView1.Rows.Item(Index), _DragDropEffects.Copy)
End If
End If
Catch ex As Exception
Exit Sub
End Try
End Sub/b
***************** Donc si j'ai bien compris jusqu'au là , j'ai copier la ligne du dataGridView
'Dans l'autre DataGridView j'ai insérer ce code :
Private Sub DataGridView1_DragEnter(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles DataGridView1.DragEnter
e.Effect = DragDropEffects.Copy
End Sub

mais le pbme c que je ne sais pas comment récupérer ce Row dans l'événement DragDrop
*****
[b]Private Sub DataGridView1_DragDrop(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles DataGridView1.DragDrop
DataGridView1.Rows.Add(????????)
End Sub/b

**** j'ai trouver cette méthode mais je ne sais pas vraiment comment l'exploiter:
e.Data.GetData avec e As System.Windows.Forms.DragEventArgs
Commenter la réponse de aymen_oussama
Messages postés
8
Date d'inscription
dimanche 18 mars 2007
Dernière intervention
29 juillet 2010
0
Merci
' ce bout de code ajoute une ligne au DataGridView mais hélas une ligne qui 'est viiiiiiiiiiiiiide bfffffffff

DataGridView1.Rows.Add(e.Data.GetData(GetType(System.String)))
Commenter la réponse de aymen_oussama

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.