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
.!
Voulez-vous dire DataGridView? –
@Charles -Oui, je ne suis pas sûr de ce que cela pourrait signifier? – MAW74656
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