DataGridView: копирование завершено в буфер обмена

У меня есть DataGridView в приложении .Net (V4 C# VS2010) и я хочу скопировать все данныев буфер обмена одним нажатием кнопки.Нет проблем -

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

Проблема в том, что у пользователя уже могут быть выбраны некоторые ячейки, строки и т. д. в DataGrid, и я действительно не хочу менять этот выбор. Вышеупомянутое, очевидно, выбирает все. Я мог бы dataGridView1.ClearSelection(); в конце, что немного лучше, но все еще не достигает того, что требуется.

Я могу сохранить выбранные ячейки:

var mySelectedCells = dataGridView1.SelectedCells;

но как сделать так, чтобы эти выбранные ячейки были повторно выбраны в DataGrid после копирования? Есть ли простой способ вернуть выбранную коллекцию ячеек в DataGrid? Возможно, есть лучший способ скопировать всю сетку в буфер обмена, не затрагивая выделенные в данный момент ячейки?

13
задан Bernard Vander Beken 10 August 2015 в 11:13
поделиться