Catching Ctrl + C in a textbox(在文本框中捕获 Ctrl + C)
问题描述
尽管我多年来一直使用 C#(Windows 窗体),但我还是有头脑失败的时刻,我一生都无法弄清楚如何捕捉用户在文本框中输入 Ctrl + C.
Despite me working with C# (Windows Forms) for years, I'm having a brain fail moment, and can't for the life of me figure out how to catch a user typing Ctrl + C into a textbox.
我的应用程序基本上是一个终端应用程序,我希望 Ctrl + C 发送一个 (byte)3
到串口,而不是复制到剪贴板的快捷方式.
My application is basically a terminal application, and I want Ctrl + C to send a (byte)3
to a serial port, rather than be the shortcut for Copy to Clipboard.
我已在文本框上将快捷方式 enabled
属性设置为 false.然而,当用户点击 Ctrl + C 时,keypress 事件不会触发.
I've set the shortcuts enabled
property to false on the textbox. Yet when the user hits Ctrl + C, the keypress event doesn't fire.
如果我捕捉到 keydown,则当用户按下 Ctrl 时(即在他们按下 C 键之前)触发该事件.
If I catch keydown, the event fires when the user presses Ctrl (that is, before they hit the C key).
这可能是我想念的简单得愚蠢的东西.
It's probably something stupidly simple that I'm missing.
推荐答案
继续使用 KeyDown 事件,但在该事件中检查 both Ctrl 和 C,像这样:
Go ahead and use the KeyDown event, but in that event check for both Ctrl and C, like so:
if (e.Control && e.KeyCode == Keys.C) {
//...
e.SuppressKeyPress = true;
}
此外,为防止底层 TextBox 处理击键,请将 SuppressKeyPress 属性设置为 true,如图所示.
Also, to prevent processing the keystroke by the underlying TextBox, set the SuppressKeyPress property to true as shown.
这篇关于在文本框中捕获 Ctrl + C的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:在文本框中捕获 Ctrl + C


- Windows 喜欢在 LINUX 中使用 MONO 进行服务开发? 2022-01-01
- 带问号的 nvarchar 列结果 2022-01-01
- CanBeNull和ReSharper-将其用于异步任务? 2022-01-01
- 在 C# 中异步处理项目队列 2022-01-01
- 在 LINQ to SQL 中使用 contains() 2022-01-01
- Azure Active Directory 与 MVC,客户端和资源标识同一 2022-01-01
- 是否可以在 .Net 3.5 中进行通用控件? 2022-01-01
- 为什么 C# 中的堆栈大小正好是 1 MB? 2022-01-01
- 使用 rss + c# 2022-01-01
- C# 通过连接字符串检索正确的 DbConnection 对象 2022-01-01