Drag and drop entre 2 datagridview [Résolu]

zlorg 3 Messages postés mercredi 27 octobre 2004Date d'inscription 26 mars 2010 Dernière intervention - 15 oct. 2007 à 15:21 - Dernière réponse : aymen_oussama 8 Messages postés dimanche 18 mars 2007Date d'inscription 29 juillet 2010 Dernière intervention
- 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 

3 réponses

Répondre au sujet
zlorg 3 Messages postés mercredi 27 octobre 2004Date d'inscription 26 mars 2010 Dernière intervention - 26 oct. 2007 à 09:47
+3
Utile
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
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de zlorg
aymen_oussama 8 Messages postés dimanche 18 mars 2007Date d'inscription 29 juillet 2010 Dernière intervention - 28 juil. 2010 à 00:45
0
Utile
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
aymen_oussama 8 Messages postés dimanche 18 mars 2007Date d'inscription 29 juillet 2010 Dernière intervention - 28 juil. 2010 à 01:02
0
Utile
' 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.