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