C# 如何通过按delete键删除DataGridView行?

C# 如何通过按delete键删除DataGridView行?,c#,winforms,datagridview,C#,Winforms,Datagridview,我在表单上有一个DataGridView 我想通过按delete键从网格中删除行,但delete键似乎不起作用,直到我进入CellEditMode 如果我进入CellEditMode,则delete键起作用,但显然只用于删除单元格内容,而不用于删除行 DataGridView具有AllowUserToDeleteRow=true,并且网格未绑定 我有其他网格,该功能可以正常工作,但看不到区别。删除功能不工作的一个可能原因是您需要选择一行 这意味着要么将SelectionMode设置为FullRo

我在表单上有一个DataGridView

我想通过按delete键从网格中删除行,但delete键似乎不起作用,直到我进入
CellEditMode

如果我进入
CellEditMode
,则delete键起作用,但显然只用于删除单元格内容,而不用于删除行

DataGridView具有
AllowUserToDeleteRow=true
,并且网格未绑定


我有其他网格,该功能可以正常工作,但看不到区别。

删除功能不工作的一个可能原因是您需要选择一行


这意味着要么将
SelectionMode
设置为
FullRowSelect
,要么意味着您以前单击过列左侧的行标题。

解决这一问题的最简单方法是确保“SelectionMode=FullRowSelect”和“EditMode=EditOnKeystrokeOrF2”

这使得当他们第一次选择行时,它不会跳转到编辑模式,这需要按“Esc”键退出编辑模式,然后删除


即使该模式被称为“EditOnKeystrokeOrF2”,第二次单击单元格也会启动编辑模式

如果您使用的是
DataGridView1.EditMode=DataGridViewEditMode.editonner
您不能删除任何行

第二个表单上的datagridview是否有焦点?它需要焦点来接受删除。请查看此问题以获取帮助,如果我的评论无法解决您的问题,请提供有关您如何设置的更准确信息。是的,我的dgv有焦点,我正常单击并选择了行,但我无法删除它们。请创建两个表单,并在每个表单上放置datagridview。加载第二个表单(从第一个表单开始),然后按delete键尝试删除dgvRow。尝试后,它工作正常,正如预期的那样。你把你的代码贴出来,我们看看有什么不对?或者您尝试打开主窗体的一个新实例,看看删除是否也被破坏了。因此,在第二个窗体中,您只有一个网格,上面有一些列—绝对没有其他内容?我所看到的唯一与您描述的相似之处是,如果某个单元格已经被编辑,那么当选中该行时,delete键仍会作用于该单元格。除非你提供更多的信息,比如第二种形式的额外代码,否则我真的怀疑是否有人能帮助你。