2017-02-22 47 views
0

我已經將DataTableDataGridView綁定,如下圖所示。Ctrl + x剪切操作不適用於DataGridView

DataGridView

,我需要選擇多個單元格,按CTRL +X在鍵盤上進行剪切操作,但我不能得到這個工作。

有誰知道如何做到這一點?

+0

您將需要編碼整個事情。請參閱[這裏的類似問題](http://stackoverflow.com/search?q=user%3A3152130+datagridview+clipboard) – TaW

+2

[如何發送到剪貼板datagridview內容像CTRL-C](http:// stackoverflow.com/questions/24090196/how-to-send-to-clipboard-datagridview-content-like-ctrl-c) –

回答

0

當您的應用程序收到「剪切」(cntrl-X)命令時,您需要執行的操作是將所選單元格複製到剪貼板。然後,您需要首先更新數據庫(刪除/刪除'cut'數據),然後刷新datagridview以反映更改,從數據網格中實際刪除這些單元格。

注意:如果您想等到實際提交數據更改,直到數據不再存在於剪貼板中,這取決於您的設計,因爲如果將所有更改永久化,則執行潛在的「撤消」。

要複製所選單元格你的代碼應該是這個樣子:

private void CopyPasteButton_Click(object sender, System.EventArgs e) 
{ 
    if (this.DataGridView1 
     .GetCellCount(DataGridViewElementStates.Selected) > 0) 
{ 
    try 
    { 
     // Add the selection to the clipboard. 
     Clipboard.SetDataObject(
      this.DataGridView1.GetClipboardContent()); 

     // Replace the text box contents with the clipboard text. 
     this.TextBox1.Text = Clipboard.GetText(); 
    } 
    catch (System.Runtime.InteropServices.ExternalException) 
    { 
     this.TextBox1.Text = 
      "The Clipboard could not be accessed. Please try again."; 
    } 
} 

我看到,你可能需要解決潛在的問題。在你的圖片中,你只是選擇你的數據網格視圖的一些列。如果此視圖表示整個數據庫表,則可能希望用戶選擇整行而不是部分行。

+0

但這段代碼如何從單元格中刪除值?來自DataGridViewElementStates.Selected的 –

+0

,您知道應刪除哪些單元格。在提交對數據庫的更改之前,您可能只想從GridView中刪除這些行,您可以刷新視圖並阻止添加這些選定的行。注意我的評論,你應該只有用戶選擇一整行而不是部分。 –

相關問題