C# Ctrl+x剪切操作在DataGridView上不起作用

C# Ctrl+x剪切操作在DataGridView上不起作用,c#,winforms,datagridview,C#,Winforms,Datagridview,我已经用DataGridView绑定了一个DataTable,如下图所示 我需要选择多个单元格并通过按键盘上的ctrl+x来执行剪切操作,但我无法使其工作 有人知道如何实现这一点吗?当应用程序收到剪切cntrl-X命令时,需要做的是将选定的单元格复制到剪贴板。然后,您需要实际地从datagrid中删除这些单元格,方法是首先更新数据库,删除/删除“剪切”数据,然后刷新datagridview以反映更改 注意:如果您想等到数据不再在剪贴板中时才提交数据更改,这取决于您的设计,因为如果您将所有更改永久

我已经用DataGridView绑定了一个DataTable,如下图所示

我需要选择多个单元格并通过按键盘上的ctrl+x来执行剪切操作,但我无法使其工作


有人知道如何实现这一点吗?

当应用程序收到剪切cntrl-X命令时,需要做的是将选定的单元格复制到剪贴板。然后,您需要实际地从datagrid中删除这些单元格,方法是首先更新数据库,删除/删除“剪切”数据,然后刷新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.";
    }
}

我发现您可能需要解决一个潜在问题。在图片中,您只选择了数据网格视图的一些列。如果此视图表示整个数据库表,您可能希望用户选择整行而不是部分行。

但此代码如何从单元格中删除值??从DataGridViewElementState。选择此视图,您知道应该删除哪些单元格。在提交对数据库的更改之前,您可能只想从GridView中删除这些行,您可以刷新视图并阻止添加这些选定行。请注意我的评论,您应该只让用户选择整行,而不是部分行。您需要对整行进行编码。请参阅可能的副本