当我在文本框中按 Enter 键时发出恼人的哔哔声
Posted
技术标签:
【中文标题】当我在文本框中按 Enter 键时发出恼人的哔哔声【英文标题】:Annoying beep when I hit enter in a textbox 【发布时间】:2013-12-28 16:50:40 【问题描述】:当用户在文本框中按 Enter 时,我试图让一些事情发生,并且它可以工作,但是当我这样做时,它会发出非常烦人的 DING windows 错误声音。我查看了我的问题,显然在内容之前添加了e.SuppressKeyPress = true;
,在内容之后添加了e.Handled = true;
,但我的程序仍然发出声音。这是我正在使用的代码:
private void textBox1_KeyUp(object sender, KeyEventArgs e)
e.SuppressKeyPress = true;
if (e.KeyCode == Keys.Enter)
// A bunch of stuff goes here that I want to
// happen when the user hits enter
e.Handled = true;
我做错了吗?这是其他人说你必须做的,但由于某种原因它对我不起作用......
谢谢!
【问题讨论】:
向上对鼠标有好处。羽绒对键盘有好处。叮!如果你弄错了。 【参考方案1】:您需要处理KeyDown
,而不是KeyUp
,以抑制KeyPress
事件。 KeyDown 文档解释了原因,因为它列出了事件的顺序:
在您设置e.SupressKeyPress
时,KeyPress
事件已经发生。
【讨论】:
敬畏,我现在有大约 50 个实例要更改为 keydown xD 谢谢,现在我知道出了什么问题! @Nathan:全局替换,或者像 sublime text 这样的编辑器可能会有所帮助:) 全局替换能否真正改变哪个事件的作用?我通过双击控件事件菜单中的“Keyup”并输入创建的方法来创建事件。 @Nathan 是的,只要您包含 .designer.cs 文件,因为这是代码中出现挂钩的地方。【参考方案2】:可以试试这个!
private void textBox1_KeyUp(object sender, KeyEventArgs e)
e.SuppressKeyPress = true;
if (e.KeyCode == (char)Keys.Enter)
// A bunch of stuff goes here that I want to
// happen when the user hits enter
e.Handled = true;
【讨论】:
你应该改变你的答案,使它不仅仅是一个代码 sn-p。尝试解释 sn-p 正在做什么并链接到一些相关资源。【参考方案3】:你所做的并没有错,只是将 (e.supperkeypress = ture) 放在 if 语句中。
private void textBox1_KeyUp(object sender, KeyEventArgs e)
if (e.KeyCode == Keys.Enter)
e.SuppressKeyPress = true;
// A bunch of stuff goes here that I want to
// happen when the user hits enter
e.Handled = true;
【讨论】:
以上是关于当我在文本框中按 Enter 键时发出恼人的哔哔声的主要内容,如果未能解决你的问题,请参考以下文章
当我们从文本框中按 Enter 键时,在单个 jQuery 方法中处理多个操作