【发布时间】:2015-03-07 13:37:30
【问题描述】:
我有一个带有 datagridview 的 (.NET 3.5) winform,我在其上添加了一个事件,例如 this。该帖子没有考虑到人们也可以使用空格键来切换复选框,并且因为没有CellKeyUp 事件就像有CellMouseUp 事件一样,我在表单上启用了KeyPreview 并将此代码添加到防止用空格键切换:
private void BulkOrderAddressDifferencesForm_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Space)
{
e.Handled = true;
e.SuppressKeyPress = true;
}
}
大多数情况下这都有效,但在某些情况下仍会处理事件,即使调试器显示 e.Handled 设置为 true。
如果我单击一个复选框,然后单击 1,然后单击 2,我可以再次使用空格键切换复选框。我不知道为什么会发生这种情况,也不知道如何解决。
【问题讨论】:
-
您是否尝试禁用通过空格键检查复选框?
-
你到底是什么意思?有那个属性吗?请记住,这是一个 DataGridViewCheckBox。
-
我的意思是,你是想阻止
DataGridViewCheckBox按空格键检查吗? -
是的。为了清楚起见,编辑了问题。
-
您正在与已经treats a space as special 的控件进行战斗。你赢不了,别费心了。