【问题标题】:How to delete DataGridView Row by pressing DeleteKey?如何按 DeleteKey 删除 DataGridView 行?
【发布时间】:2023-03-04 21:51:02
【问题描述】:

我在表单上有一个 DataGridView。

我想通过按删除键从网格中删除行,但删除键似乎已死,直到我输入CellEditMode

如果我输入CellEditMode,则删除键有效,但显然仅用于删除单元格内容,而不用于删除行。

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

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

【问题讨论】:

  • 第二种形式的datagridview有焦点吗?它需要焦点来接受删除。看看这个问题以寻求帮助stackoverflow.com/questions/5268735/…
  • 如果我的评论不能解决您的问题,请提供一些有关您如何设置的更准确信息。
  • 是的,我的 dgv 有焦点,我点击并正常选择了行,但我无法删除它们。请创建两个表单并在每个表单上放置一个 datagridview。加载第二个表单(从第一个表单开始)并尝试按 DeleteKey 删除 dgvRow。
  • 试过了,效果很好,正如人们所期望的那样。你发布你的代码怎么样,我们看看有什么问题?或者,也许您尝试打开主窗体的一个新实例,看看那里的删除是否也被破坏了。
  • 所以在第二种形式中,您只有一个带有一些列的网格 - 绝对没有别的? The only thing close to what you describe that I have seen is if a cell is already being edited - then when the row is selected the delete key still acts on that cell.除非您提供更多信息,例如第二种形式的额外代码,否则我真的怀疑任何人都可以帮助您。

标签: c# winforms datagridview


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      最简单的解决方案是确保“SelectionMode = FullRowSelect”和“EditMode = EditOnKeystrokeOrF2”。

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-06-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-12-06
        • 1970-01-01
        相关资源
        最近更新 更多