У меня есть 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? Возможно, есть лучший способ скопировать всю сетку в буфер обмена, не затрагивая выделенные в данный момент ячейки?