Csharp/C#教程:如何为Windows窗体表单设置热键分享


如何为Windows窗体表单设置热键

我想在我的Windows窗体表单中设置热键。 例如, Ctrl + N表示新表单, Ctrl + S表示保存。 我该怎么办?

myForm.KeyPreview = true; 

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. } } 

如果您的窗口有菜单,则可以使用System.Windows.Forms.ToolStripMenuItemShortcutKeys属性:

 myMenuItem.ShortcutKeys = Keys.Control | Keys.S; 

在Visual Studio中,您也可以在菜单项的属性页中进行设置。

我想要一个Form的KeyDown事件和一些像这样的代码:

 private void Form1_KeyDown(object sender, KeyEventArgs e) { if (e.KeyData == (Keys.Control | Keys.N)) { CreateNew(); } } 

如果您尝试将它们链接到应用程序中的菜单项,那么您不需要任何代码。 在菜单项上,您只需设置快捷键属性,它将运行您为菜单项单击配置的相同事件。

您还可以在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

如果需要,您也可以使用隐藏菜单进行设置。 只需设置menu.visible = false的属性;

首先,您需要处理KeyDown事件,然后您可以开始注意修改器:

 private void Form1_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e) { if (Control.ModifierKeys == Keys.Control && e.KeyCode == Keys.S) { //Do whatever } } 

当然,您需要确保您的表单订阅了KeyDown事件。

上述就是C#学习教程:如何为Windows窗体表单设置热键分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/961247.html

(0)
上一篇 2021年11月25日
下一篇 2021年11月25日

精彩推荐