【发布时间】:2015-03-14 20:40:57
【问题描述】:
我有一个包含多个 C# 表单文本框的程序。我已经为激活某些功能的整个表单设置了热键。我的问题是我的热键已设置到 Form KeyDown 事件上,如果我在 TextBox 上写一些东西,它们就会激活。
示例:一个热键可能是 I。每次我将字母写到文本框时,热键都会激活。
其他解决方案和问题:我曾考虑在热键前面放置一个键,例如 CTRL+Hotkey,但这些也存在问题,因为 CTRL+C 是 Windows 复制命令等。SHIFT 是UpperKey 按钮。
问题:当我在 TextBox 上书写时,我是否可以阻止热键激活,而无需通过表单中的所有热键?
编辑:根据要求提供一些代码。按钮代码来自存储的 XML 文件或热键表单+类(单独),我在其中为它们设置了一个窗口。
public Hotkeys hotkeysForm = new Hotkeys();
void Form1_KeyDown(object sender, KeyEventArgs e)
{
toggleInformation = hotkeysForm.toggleInformation;
if (e.Control && e.KeyCode == toggleInformation)
{
showInfo(true);
}
else if (e.KeyCode == toggleInformation)
{
if (!isInfoActive)
showInfo();
else
hideInfo();
}
}
【问题讨论】:
-
您是如何设置热键的?你对他们有什么反应?显示一些代码?
-
在下面发布了一些代码。