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