【问题标题】:WinForms DatagridView allows deletion via Shift + Del keys even though AllowUserToDeleteRows property is set to falseWinForms DatagridView 允许通过 Shift + Del 键删除,即使 AllowUserToDeleteRows 属性设置为 false
【发布时间】:2011-09-26 13:37:06
【问题描述】:

我正在使用标准的 .Net Winforms datagridview 控件来显示和操作数据,但是我已经(或认为是)通过以下方式抑制了用户删除:

this.dataGridViewTestSteps.AllowUserToDeleteRows = false;

现在按下“Del”实际上并不会删除行,但令人惊讶的是同时按下 [Shift] 和 [Del] 会删除。 Shift 键覆盖上面设置的属性是怎么回事?我可以做些什么来完全禁止删除?

【问题讨论】:

  • 假设您的代码应该禁止所有删除功能是正确的。我试图模仿你的情况,但似乎按住 Shift 对我阻止行删除的能力没有影响。您是否有任何自定义代码附加到网格以用于其他目的?
  • 你会不会在某处坚持使用 Shift-Del 快捷键来支持剪切到剪贴板?
  • 谢谢你们两个,但是我们的代码没有特别阻止或允许这样做。 'KeyDown' 事件实际上已被处理,但像这样: private void dataGridViewTestSteps_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Delete) { removeSelectedRows(); } }

标签: winforms datagridview


【解决方案1】:

哦,天哪 - 解决方案显然相当简单,但有点出乎意料:Shift + Del 似乎是 Ctrl 的系统范围替代方案+ X。例如。在 notepad.exe 中编辑文本时,选择一些字符并按 Shift + Del 似乎与标准 Cut / Ctrl + X 可以。

由于我确实在我的应用程序中处理了 Ctrl + x,它确实会继续并“删除”这些行,即使它们实际上已放置在剪贴板上。

所以这与 datagridview 无关,ctrl + x 的用户代码在 shift + del 被按下。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-03-28
    • 2011-11-12
    • 1970-01-01
    • 2012-08-13
    • 2014-06-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多