【问题标题】:How to Add shortcut key to checkbox without text如何在没有文本的情况下将快捷键添加到复选框
【发布时间】:2012-01-13 09:51:42
【问题描述】:

我想给复选框添加快捷键。复选框没有文字。我有标签,然后是复选框。标签有 ex 的快捷键。 &可见的。所以,Label 有 V 作为快捷键。如果有人按 Alt+V,则 chechbox 应该从选中状态变为未选中状态,并且以相反的方式相同。

【问题讨论】:

  • 你使用的是什么框架:wpf、windows forms、gtk#、asp.net、...?
  • 你为此做了什么?

标签: c# .net winforms controls mnemonics


【解决方案1】:

您可以像这样检查它,请参阅以下代码部分。

        protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
        {
            // look for the expected key 
            if (keyData == Keys.Alt && keyData == Keys.V)
            {
                checkBox1.Checked = true;
                return true;
            }
            else
            {
                checkBox1.Checked = false;
                return false;
            }
        }

【讨论】:

    【解决方案2】:

    标签控件在键盘助记符方面是特殊的。由于标签永远无法获得焦点,因此每当您尝试使用其键盘助记符将焦点设置为标签时,标签会将焦点设置为 Tab 键顺序中的下一个控件。

    这适用于文本框和组合框,它们没有任何用于显示标签的内置工具(与复选框和选项按钮控件相比)。要为这些控件设置助记符,您可以在它们旁边放置一个标签,为其设置助记符,并确保它在 Tab 键顺序中位于文本框之前。这样,当用户激活标签的键盘助记符时,它会自动将焦点设置到文本框控件。您在 Windows 中随处可见:

         

    好吧,如果必须,您可以使用复选框控件执行完全相同的操作(尽管我真的不确定您为什么要这样做)。设置标签的助记符 (&Visible),然后将标签放在您希望它使用的复选框旁边。 Use the TabIndex configuration options in the Visual Studio IDE 确保如果标签有标签索引n,复选框控件有标签索引n+1

    没有必要覆盖ProcessCmdKey 或任何其他困难。

    【讨论】:

      猜你喜欢
      • 2017-04-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-05
      • 1970-01-01
      • 2013-02-26
      相关资源
      最近更新 更多