c# - 如何取消 PreviewKeyDown 事件中的关键操作
问题描述
我正在尝试检测用户是否在 TextBox 中按下 ENTER 键,如果是,则将焦点移动到按钮而不执行单击按钮。到目前为止,我发现检测 ENTER 键的唯一方法是使用 PreviewKeyDown 事件。现在我可以检测到 ENTER 键,但是当将焦点更改为按钮时,它会触发 Click 事件。在正常的 KeyDown 事件中,我可以使用“e.handled = true / false”,但如何在 PreviewKeyDown 事件中执行此操作?
解决方案
尝试这个:
private void textBox1_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
e.IsInputKey = true;
button1.Focus();
}
}
此外,为了减少声音效果,您可以使用以下事件侦听器
private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
if(e.KeyValue == 13)
{
e.SuppressKeyPress = true;
}
}
推荐阅读
- css - 通过 CSS 对齐按钮的图像位置
- reactjs - 使用 AWS amplify 通过网站登录 chrome 扩展程序
- r - 根据设定值重新排序一列数字,R
- python - 读取 csv 文件并希望跳过前两列
- roles - 生成将权限授予帐户中所有适当角色的 Snowflake 脚本
- .net - Visual Studio 扩展:如何获取 $ 宏的值?
- python-3.x - 如何对两个离散的归一化概率分布函数应用 KS 检验?
- javascript - 选择标签 HTML 未显示在 DOM ReactJS 中
- javascript - 无法使用 DynamoDB 节点 SDK docClient 从 DynamoDB 表中读取项目
- python - 在熊猫数据框中查找与当前行值不同的先前连续出现的值的数量