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


基础教程推荐
- 将事件 TextChanged 分配给表单中的所有文本框 2022-01-01
- 在 VS2010 中的 Post Build 事件中将 bin 文件复制到物 2022-01-01
- 全局 ASAX - 获取服务器名称 2022-01-01
- 如何动态获取文本框中datagridview列的总和 2022-01-01
- JSON.NET 中基于属性的类型解析 2022-01-01
- 首先创建代码,多对多,关联表中的附加字段 2022-01-01
- 从 VS 2017 .NET Core 项目的发布目录中排除文件 2022-01-01
- 经典 Asp 中的 ResolveUrl/Url.Content 等效项 2022-01-01
- 错误“此流不支持搜索操作"在 C# 中 2022-01-01
- 是否可以在 asp classic 和 asp.net 之间共享会话状态 2022-01-01