【问题标题】:Need to trigger the button using only mouse click or alt + the hot key used for it in windows form需要仅使用鼠标单击或 alt + windows 窗体中用于它的热键来触发按钮
【发布时间】:2017-08-02 15:33:49
【问题描述】:

我的问题 我的表单中的按钮很少。我需要在鼠标单击或 alt + 中用作热键的字母时触发这些按钮。 我在按钮的名称属性中的字母前面添加了 &。但我的问题是,即使在不使用 alt 键的情况下按下字母表,也会触发以下操作。 下面是触发FirstMatch按钮的方法。

    public void firstMatch_Button_Click(object sender, EventArgs e)
    {

        Action_Raised(sender, "First Match");
    }

【问题讨论】:

标签: c# winforms


【解决方案1】:

首先,您需要在按钮的 Text 属性而不是 Name 属性的字母前添加 &。

你要做的就是通过下面的代码来实现。

private void button1_Click(object sender, EventArgs e)
{
   if (ModifierKeys.HasFlag(Keys.Alt) || e.GetType() == typeof(MouseEventArgs))
   {
       MessageBox.Show("button is clicked.");
   }
}    

【讨论】:

  • -非常感谢..这帮助我解决了问题。
【解决方案2】:

您可以将表单的属性 KeyPreview 更改为 True

现在表单首先接收每​​个关键事件。

然后你可以像这样在表单中添加一个按键向上/向下事件:

private void Form1_KeyUp(object sender, KeyEventArgs e)
{
    // Replace "Keys.A" with the key you want
    if (e.KeyCode == Keys.A && e.Alt)
    {
        this.firstMatch_Button.PerformClick();
    }
}

请删除&,否则按钮会被进一步触发。

【讨论】:

  • 很抱歉让您删除 &。
  • 您说,您在按钮的文本属性中添加了&。一定要去掉,否则按不带alt的热键还是会触发的。
  • 我需要它,以便热键显示带有下划线
  • 这意味着当按下 alt 时,别名 A 将带有下划线。
  • 嗯,我不知道这是否可能。使用 WPF 可以工作,但我不知道使用 WinForms。这个问题没有答案。 stackoverflow.com/questions/16868774
猜你喜欢
  • 2011-01-29
  • 2010-11-10
  • 1970-01-01
  • 2018-12-21
  • 2018-03-15
  • 1970-01-01
  • 2017-02-22
  • 2022-08-03
  • 1970-01-01
相关资源
最近更新 更多