DataGridView: Copie complète dans le presse-papiers

J'ai un DataGridView dans un .Net application (V4 C# VS2010) & voulez copier toutes les données dans le presse-papiers sur le clic d'un bouton. Pas de problème -

private void copyToClipboard()
{
    dataGridView1.SelectAll();
    DataObject dataObj = dataGridView1.GetClipboardContent();
    if (dataObj != null)
        Clipboard.SetDataObject(dataObj);
}

Problème est que l'utilisateur pourrait avoir déjà quelques cellules, lignes, etc sélectionné dans la grille de données & je n'ai pas vraiment envie de changer la sélection. Le ci-dessus sélectionne évidemment tout. Je pourrais dataGridView1.ClearSelection(); à la fin qui est un peu mieux mais encore ne pas réaliser ce qui est nécessaire.

Je peux enregistrer les cellules sélectionnées:

var mySelectedCells = dataGridView1.SelectedCells;

mais comment puis-je obtenir ces cellules sélectionnées resélectionnés sur la grille de données après la copie? Est-il un moyen facile d'obtenir les cellules sélectionnées de la collection de nouveau dans la grille de données? Peut-être il ya une meilleure façon d'obtenir l'ensemble de la grille copié dans le presse-papiers, en premier lieu, sans affecter actuellement sélectionné les cellules?

OriginalL'auteur Nigel | 2012-05-09