2013-02-14 81 views
2

我有一個datagridview myDgv數據將從數據庫中填充到數據庫中。只有前50行從winforms中的datagridview複製到剪貼板

當我將複製的數據粘貼到excel中時,我正在做Ctrl + A(全選)和複製(Ctrl + C) ,只有前50行數據被複制。
其餘的行都是空白的。

這裏是我的keydown事件代碼

If e.Control AndAlso e.KeyCode = Keys.C Then 
    Dim d As DataObject = myDgv.GetClipboardContent() 
    Clipboard.SetDataObject(d) 
    e.Handled = True 
End If 

當我向下滾動格,直到結束(最後一行),並做按Ctrl + C,然後將其粘貼到Excel中, 所有行越來越粘貼。

我該如何着手解決這個問題?

+0

我略有疑惑。 DataGridView本身支持CTRL-A和CTRL-C。您不需要編寫一行代碼來複制數據。您還可以使用ClipboardCopyMode屬性設置複製的完成方式。 – 2013-02-14 13:14:56

回答

0

使用DataGridView.SelectAll方法來選擇使用CTRL + A.

和使用下列事件讓按鍵的所有行:

void dataGridView1_KeyDown(object sender, KeyEventArgs e) 
{ 
    if (e.Control && e.KeyCode == Keys.C) 
    { 
     //call to DataGridView.SelectAll Method 
    } 
} 
+0

在Ctrl + A我已經處理選擇所有 我甚至嘗試添加此行(它再次選擇所有) 但仍然相同的結果。空行出現。 我想這些行沒有被加載到緩衝區。 – 2013-02-14 10:39:25

+0

你是否已將datagridview的clipboardcopymode更改爲EnableWithoutHeaderText? – 2013-02-14 12:46:19

+0

是的,做到了。甚至還嘗試了其他模式。 – 2013-02-14 13:06:42