c# - 如何防止 WinForms TextBox 中按下 alt 键时发出蜂鸣声?

标签 c# winforms

我正在创建一个例程,允许用户将键盘快捷键复制到文本框中以进行“自定义键盘快捷键”自定义,但每次按下 alt 键和另一个字母时,它都会发出另一种声音。

我正在捕获 textbox_keydown 事件中的键,以将修饰符 + 其他键解析为可读的 Shift + A 或 Ctrl + Shift + B 方式放入同一个文本框中。我应该在不同的事件中执行此操作,例如 textbox_previewkey 而不是 textbox_keydown 吗?如何防止 alt 修饰键 + 字母或数字引起蜂鸣声?

该文本框只是一个普通的 .net 3.5 文本框,其唯一可编辑的属性是将 ReadOnly 属性设置为 false。有没有更好的方法可以让我重新执行此操作?

我目前只是检查是否按下了任何修饰键,然后按 + a-z 或 0-9,然后继续将相应按下的键输入到同一文本框中,例如 Shift + A 或 Ctrl + Shift + Y。

最佳答案

处理TextBox的KeyDown事件,例如使用 void HandleKeyDown(object source, KeyEventArgs e) 并在内部输入: if (e.Alt) e.SuppressKeyPress = true;.

(也适用于 Return 键)

关于c# - 如何防止 WinForms TextBox 中按下 alt 键时发出蜂鸣声?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/722372/

相关文章:

C# 如何在派生类中添加属性 setter ?

c# - 关闭 winform 应用程序时将对象设置为 null 通常是个好主意吗?

c# - 我应该如何构建数据驱动的 Win 表单解决方案?

c# - 需要协变返回类型和 "real"类方差的 Scala 语言如何在 CLR 上运行?

c# - 是否有用于显示 HTML 的 .Net WinForm 应用程序的控件

c# - Paint.exe 样式缩放,最近邻插值减半边界像素

c# - 根据 Enabled 属性更改用户控件上的属性

c# - 将一个实体映射到多个表

c# - 如何使用 ASP.NET Repeater 制作幻灯片

c# - ASP.NET Core (MVC 6) 中的路由消歧