gpt4 book ai didi

C#.NET Winform 按键事件无法取消

转载 作者:太空宇宙 更新时间:2023-11-03 15:46:39 25 4
gpt4 key购买 nike

我有一个带有 datagridview 的 (.NET 3.5) winform,我在 gridview 的复选框上添加了一个事件,如 this .该帖子没有考虑到人们也可以使用空格键来切换复选框,并且因为没有像 CellMouseUp 事件那样的 CellKeyUp 事件,所以我启用了 KeyPreview 并添加此代码以防止使用空格键切换:

private void BulkOrderAddressDifferencesForm_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Space)
{
e.Handled = true;
e.SuppressKeyPress = true;
}
}

大多数情况下这都有效,但有一种情况仍然处理事件,即使调试器显示 e.Handled 设置为 true。

Form with controls

如果我点击一个复选框,然后点击 1,然后点击 2,我可以再次使用空格键切换复选框。我不知道为什么会这样,也不知道如何解决。

最佳答案

你可以覆盖FormProcessCmdKey方法:

protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
if (keyData == Keys.Space && checkBox1.Focused)
{
//instead of checkBox1.Focused condition, you check if your DataGridView contains focus and active cell is of checkBox type
return true;
}
return base.ProcessCmdKey(ref msg, keyData);
}

关于C#.NET Winform 按键事件无法取消,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27857067/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com