2011-08-29 1 views
1

J'ai un gridview avec des lignes. J'aimerais que l'utilisateur puisse saisir une ligne et la déplacer vers l'une des autres vues de grille sur le winform. Comment puis-je faire cela? Je ne suis pas familier avec la façon d'implémenter glisser et déposer ici.comment faire glisser la ligne gridview d'une grille à l'autre

De bons tutoriels sur ce genre de glisser-déposer? Merci de votre aide.

MISE À JOUR: Ok, j'ai le code suivant (pour faire glisser de gridPODetails à dataGridView1 Cela ne fonctionne pas encore, mais je suis plus proche (maintenant je reçois la flèche et le signe plus dans la destination).

private void gridPODetails_MouseDown(object sender, MouseEventArgs e) 
{ 
    DataGridView.HitTestInfo info = gridPODetails.HitTest(e.X, e.Y); 

    if (info.RowIndex >= 0) 
    { 
     //DataRowView view = (DataRowView)gridPODetails.Rows[info.RowIndex].DataBoundItem; //WRONG 
     DataRow view = ((DataTable)(gridPODetails.DataSource)).Rows[info.RowIndex]; //RIGHT 
     if (view != null) 
     { 
      gridPODetails.DoDragDrop(view, DragDropEffects.Copy); 
     } 
    } 
} 

private void dataGridView1_DragEnter(object sender, DragEventArgs e) 
{ 
    e.Effect = DragDropEffects.Copy; 
} 

private void dataGridView1_DragDrop(object sender, DragEventArgs e) 
{ 
    DataGridView grid = sender as DataGridView; 
    DataTable table = grid.DataSource as DataTable; 
    DataRow row = e.Data.GetData(typeof(DataRow)) as DataRow; 

    if (row != null && table != null && row.Table != table) 
    { 
     table.ImportRow(row); 
     row.Delete(); 
    } 
} 

SOLVED:.. Voir mes édition ci-dessus, j'attrapait en fait l'ensemble datatable, pas seulement la ligne que je voulais bien sûr la destination ne connaît que la façon de travailler avec des lignes, et non des tables entières maintenant son travail

.!
+0

Voulez-vous dire DataGridView? –

+0

@Charles -Oui, je ne suis pas sûr de ce que cela pourrait signifier? – MAW74656

+0

J'ai supprimé ma réponse. La grille en question est une grille DevExpress. Ce n'est pas le DataGridView standard. Je suis tellement désolé de perdre votre temps. – David

Répondre

1
+0

-Ce semble parfait, je vais essayer d'utiliser et de vous faire savoir comment ça s'est passé. Vous ne pensez pas que la vidéo est disponible en ligne? – MAW74656

+0

Je ne pense pas, mais j'ai trouvé l'article imprimé facile à suivre. Je dois vous remercier de demander. Cela fait longtemps que j'ai essayé de comprendre comment faire cela, et je l'ai abandonné car cela n'en valait pas la peine. (J'étais un développeur relativement nouveau à l'époque.) Maintenant, je trouve cet article et il semble beaucoup plus facile que lorsque j'apprenais .NET 1.0. – David

+0

- Ce code fait-il référence à la grille grid .NET intégrée ou à un contrôle personnalisé devexpress? – MAW74656

Questions connexes