我想在Windows窗体窗体中设置热键。例如,Ctrl + N为新表格和Ctrl + S保存。我将如何做到这一点?如何为Windows窗体窗体设置热键
13
A
回答
36
集
创建用于KeyDown事件的处理程序:
myForm.KeyDown += new KeyEventHandler(Form_KeyDown);
处理器示例:
// Hot keys handler
void Form_KeyDown(object sender, KeyEventArgs e)
{
if (e.Control && e.KeyCode == Keys.S) // Ctrl-S Save
{
// Do what you want here
e.SuppressKeyPress = true; // Stops other controls on the form receiving event.
}
}
0
首先,你需要处理KeyDown事件,然后就可以开始观看了您的修饰符:
private void Form1_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
{
if (Control.ModifierKeys == Keys.Control && e.KeyCode == Keys.S)
{
//Do whatever
}
}
当然,你需要确保你的形式订阅KeyDown事件。
2
我想一个KeyDown
活动的形式和一些像这样的代码:
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyData == (Keys.Control | Keys.N))
{
CreateNew();
}
}
2
如果您尝试将它们链接到应用程序中的菜单项,则不需要任何代码。在菜单项上,您可以简单地设置快捷键属性,它将运行您为菜单项单击配置的相同事件。
0
如果需要,也可以使用隐藏菜单进行设置。只需设置menu.visible = false的属性;
2
您还可以覆盖在你的Form
派生类型ProcessCmdKey
这样的:
protected override bool ProcessCmdKey(ref Message message, Keys keys)
{
switch (keys)
{
case Keys.B | Keys.Control | Keys.Alt | Keys.Shift:
// ... Process Shift+Ctrl+Alt+B ...
return true; // signal that we've processed this key
}
// run base implementation
return base.ProcessCmdKey(ref message, keys);
}
我认为这是比较适合的热键。没有KeyPreview
需要。
3
如果你的窗口有一个菜单,你可以使用的System.Windows.Forms.ToolStripMenuItem
的ShortcutKeys
属性:
myMenuItem.ShortcutKeys = Keys.Control | Keys.S;
在Visual Studio中,你可以将它设置菜单项的属性页,太多。
相关问题
- 1. Windows窗体热键
- 2. 如何在Windows窗体中设置窗体的位置.net 3.5
- 3. 将窗体设置为父窗体#
- 4. 用C#设置Windows窗体#
- 5. 如何重置Windows窗体?
- 6. 如何设置Windows窗体TabControl的键盘快捷键?
- 7. 如何设置WPF窗体作为Windows窗体应用程序mainform在c#
- 8. Windows窗体 - 如何从父窗体
- 9. 内联窗体集 - 如何为子窗体设置默认值
- 10. 如何使热键触发Windows窗体按钮?
- 11. Windows窗体 - 从父窗体
- 12. Windows窗体 - 在主窗体
- 13. 将一个Windows窗体设置为另一个Windows窗体的MDI子窗体(或等价物)
- 14. 为XNA窗口设置窗体图标?
- 15. Windows窗体上的“热轨”效果UserControl
- 16. 窗体加载不工作的热键
- 17. 转换Windows窗体到Windows Metro窗体
- 18. 如何将Windows窗体窗体调整为小于132x38?
- 19. 如何从子窗体设置父窗体WindowState属性?
- 20. 如何在父窗体的中心设置子窗体?
- 21. 有关设置Windows窗体窗口窗口状态的提示
- 22. 如何将FormBorderStyle属性设置为None时移动Windows窗体?
- 23. 在Windows窗体中重写设置
- 24. Windows窗体的推荐设置/属性
- 25. 无法设置背景在Windows窗体
- 26. Windows窗体设计与ListBoxes
- 27. windows窗体&设计图案
- 28. 为窗体移动设置窗体的背景图像
- 29. 将窗体的父窗体设置为“FindWindow”
- 30. 如何在Windows窗体
任何人都可以告诉我这是什么CreateNew()?它是一个内置函数吗? – Riya 2011-02-19 05:01:41
@ riya7887:这只是一个例子。这不是一种内置的方法。你可以创建这样的方法,并把所有相关的代码放入。 – 2011-02-19 06:16:49