2009-12-27 5 views
1

J'essaie de prendre du texte d'un contrôle de zone de liste et de le placer dans une cellule particulière d'une grille de données. J'utilise le code suivant:Glisser/déposer Insertion de la grille de données -La ligne et la colonne sont toujours -1

private void DG_DragDrop(object sender, DragEventArgs e) 
    { 
     DataGridView.HitTestInfo theHit = DG.HitTest(e.X, e.Y); 
     int theCol = theHit.ColumnX; 
     int theRow = theHit.RowY; 
     MessageBox.Show(theCol.ToString() + " " + theRow.ToString()); 

    } 

Par les coordonnées de colonne et ligne sont toujours -1. Je soupçonne que le X et le Y doivent être ajustés d'une façon ou d'une autre, mais je ne suis pas sûr de savoir comment ou si c'est le problème. Toutes les idées ou suggestions seraient appréciées ...

Répondre

2

Je trouve la réponse, voici le code au cas où quelqu'un d'autre a un problème similaire:

Point theLoc = DG.PointToClient(new Point(e.X, e.Y)); 

     DataGridView.HitTestInfo theHit = DG.HitTest(theLoc.X,theLoc.Y); 
     int theCol = theHit.ColumnIndex; 
     int theRow = theHit.RowIndex; 
     MessageBox.Show(theCol.ToString() + " " + theRow.ToString()); 
Questions connexes