Copie DataGridView de lignes dans un autre DataGridView
Donc en gros j'ai 2 DataGridView
et j'ai besoin de copier les lignes de l'un à l'autre.
Jusqu'à présent, j'ai essayé:
DataGridViewRowCollection tmpRowCollection = DataGridView1.Rows;
DataGridViewRow[] tmpRowArray = new DataGridViewRow[tmpRowCollection.Count];
tmpRowCollection.CopyTo(tmpRowArray, 0);
DataGridView2.Rows.AddRange((DataGridViewRow[]) tmpRowArray));
Mais il continue de dire qu'
"Row provided already belongs to a DataGridView control."
Alors, quel est le meilleur moyen pour copier le contenu des lignes (les deux DataGridView
ont les mêmes colonnes) ?
OriginalL'auteur VAShhh | 2011-06-13
Vous devez vous connecter pour publier un commentaire.
Vous utilisez la fonction sur le lien suivant
http://canlu.blogspot.com/2009/06/copying-datagridviewrow-to-another.html
Je vais accepter celle-ci, car il semble que la seule façon d'obtenir ce dont j'ai besoin.
OriginalL'auteur Wicked Coder
vous devez d'abord clone de la ligne à partir de l'original, puis ajouter à nouveau de la vue.
http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridviewrow.clone.aspx
DataGridView2.Rows.AddRange((DataGridViewRow[]) tmpRowArray.clone()));
je reçois la même erreur. Dois-je cloner chaque ligne dans une boucle? 😐malheureusement, je pense que c'est le cas. toutefois, si l'original datagridview est lié à un ensemble de données, vous pouvez lier le deuxième datagridview pour le même ou un clone du jeu de données et obtenir ce que vous êtes après.
OriginalL'auteur Bueller
Je vous conseille d'utiliser un support DTO pour cela. Au lieu de traiter avec les lignes directement, créer un DTO qui contient toutes les colonnes de votre GridViews, puis utiliser une Liste d'entre eux en tant que votre source de données. Ensuite, tout ce que vous avez à faire à ajouter/supprimer des lignes est à ajouter/supprimer des Otd dans la liste.
OriginalL'auteur KeithS
il suffit d'écrire ceci:
OriginalL'auteur Dr.DEVELOPER