【发布时间】:2020-11-22 15:09:47
【问题描述】:
我有这个代码。当我在toolFolderName(工具栏文本框)获得焦点时按 Enter 键时,Enter 键处理得很好。然后,尽管e.Handled = true; 触发了filesDataGridView_KeyUp 事件。奇怪的是(或者也许不是,你决定),如果我在toolFolderName_KeyPress 中设置一个断点,并在执行中断时点击继续,而不做任何其他事情,击键不会传播到 DGV 事件。
我意识到我同时使用了KeyUp 和KeyPress 事件。 e.Handled 不适用于这些事件吗?我想要一个工具栏文本框和一个 DGV 在同一个表单上使用 Enter 键,每个都有自己的目的。我应该采取什么方法?
private void toolFolderName_KeyPress(object sender, KeyPressEventArgs e)
{
if ((Keys)e.KeyChar == Keys.Return)
{
// code
// code
e.Handled = true;//does this not mean "Hey, every control on this form,
//ignore this keystroke, it has been handled?"
}
}
private void filesDataGridView_KeyUp(object sender, KeyEventArgs e)
{
// receives Enter key despite e.Handled in toolFolderName_KeyPress
if (e.KeyCode == Keys.Return)
{
// processing code
e.Handled = true;
}
}
【问题讨论】:
标签: c# winforms datagridview