【问题标题】:How can you create Alt shortcuts in a Windows Forms application?如何在 Windows 窗体应用程序中创建 Alt 快捷方式?
【发布时间】:2011-01-07 13:17:13
【问题描述】:

我想为我的 Windows 窗体应用程序中的某些控件创建键盘快捷键。

例子:

注意下划线,F E V P B。

我有一个标签和一个文本框控件。我想将该 Alt 键盘快捷键关联到标签和文本框。因此,如果有人按下 Alt + B,焦点将被赋予关联的文本框。有没有办法创建这个关联?

【问题讨论】:

    标签: c# winforms shortcut


    【解决方案1】:

    当标签通过按下其加速键(使用& 设置)获得焦点时,它会将焦点转发到 Tab 键顺序中的下一个控件,因为标签不可编辑。您需要将文本框作为 Tab 键顺序中的下一个控件。

    要查看和更正表单的 Tab 键顺序,请在 IDE 中使用 View + Tab Order 命令。使用 TabPages 或其他容器会为选项卡顺序添加一个嵌套级别(例如,1.11.2 而不仅仅是 12),但如果标签和文本框在同一个容器中,则它应该不太难正确设置。

    【讨论】:

      【解决方案2】:

      输入&File&Edit,你会得到下划线。这将自动将带下划线的字母与Alt 关键字绑定以作为快捷方式。

      编辑。 你的问题已经修改,所以我想跟上我的回答。您想捕捉一些组合键 (Alt + F) 并将焦点设置到文本框。

      您可以使用主窗体的 KeyDown 事件尝试此解决方案。

          private void Form1_KeyDown(object sender, KeyEventArgs e)
          {
              if (e.Alt && e.KeyCode == Keys.F)
              {
                  this.textBox1.Focus();
              }
          }
      

      为此,您必须另外将表单的KeyPreview 属性设置为true

      【讨论】:

      • 这似乎不起作用。我正在使用 TabPage 控件,我希望 F 在“字体”中加下划线。更改 tagPage1 的 .Text 属性不会给它加下划线。
      • 嗯,您提供的图像显示了一个菜单条。您想要一个名为 Font(带下划线的 F)的 tabPage,并且在按下 Alt + F 之后,您希望显示 tabPage。我说的对吗?
      【解决方案3】:
      this.KeyDown += new KeyEventHandler(Form1_KeyDown);
      
      void Form1_KeyDown(object sender, KeyEventArgs e) 
      { 
       if (e.Alt && e.KeyCode == Keys.W)
       { 
         btnShowConstructionCdFun(); 
       } 
      }
      

      【讨论】:

        猜你喜欢
        • 2019-06-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-09-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多