我在.Net應用程序(V4 C#VS2010)中有一個DataGridView &想要複製所有數據到剪貼板上點擊一個按鈕。沒問題 -DataGridView:複製完成到剪貼板
private void copyToClipboard()
{
dataGridView1.SelectAll();
DataObject dataObj = dataGridView1.GetClipboardContent();
if (dataObj != null)
Clipboard.SetDataObject(dataObj);
}
問題是,用戶可能已經有一些單元格,行等在DataGrid上&選擇我真的不希望改變這種選擇。以上顯然選擇了一切。我可以dataGridView1.ClearSelection();在最後稍微好一些,但仍然沒有達到要求。
我可以保存所選單元:
var mySelectedCells = dataGridView1.SelectedCells;
,但我如何才能複製後的DataGrid中重新選擇那些選定的單元格?有沒有一種簡單的方法將選定的單元格集合回到DataGrid中?也許有一種更好的方法可以將整個網格複製到剪貼板中,而不會影響當前選定的單元格?
謝謝。這是我最後做的。我必須添加另一個if語句if(row.Cells [i] .Visible)',因爲幾列不可見並且此解決方案複製所有單元格,可見與否 - ('dataGridView1.GetClipboardContent();'僅限副本可見的東西)。不知道如何處理DataGridViewImageCell,但這不是我的特定應用程序的問題。 – Nigel
沒問題奈傑爾,很高興幫助。當我提到DataGridViewImageCell時,我的意思是我不確定如果您使用的是DataGridViewTextBoxCell以外的任何其他代碼,但我相信這種類型是默認的,如果您沒有另行指定。但是如果你使用所有的TextBox單元格,它不應該是一個問題。乾杯。 –
只是想提一提,如果'DataGridView'很大,你可能想要使用'StringBuilder'而不是僅僅使用字符串連接。 – Anthony