【问题标题】:How can I determine when control key is held down during button click如何确定在按钮单击期间何时按住控制键
【发布时间】:2008-12-09 18:40:11
【问题描述】:

如何确定在 C# Windows 程序中单击按钮时按住控制键的时间?我希望 Ctrl/Click 执行一项操作,而 Click 执行另一项操作。

【问题讨论】:

    标签: c# windows


    【解决方案1】:

    还有一点:

    private void button1_Click ( object sender, EventArgs e )
    {           
        if( (ModifierKeys  & Keys.Control) == Keys.Control )
        {
            ControlClickMethod();    
        }
        else
        {
            ClickMethod();
        }
    }
    
    private void ControlClickMethod()
    {
        MessageBox.Show( "Control is pressed" );
    }
    
    private void ClickMethod()
    {
        MessageBox.Show ( "Control is not pressed" );
    }
    

    【讨论】:

    • 我觉得自己很愚蠢。我不知道 ModifierKeys 存在。多年来,我一直在做老派(捕获按键并设置布尔值)。我猜你每天都会学到一些新东西。 :)
    • 我每天都觉得“愚蠢”……而且每次我来到 StackOverflow 时,我都会受到“聪明”开发人员的启发,并努力提高自己。 (顺便说一句,这绝不意味着你“愚蠢”)
    • 非常感谢您,西蒙。完美运行!我投票给你,但“接受答案”链接去哪儿了!
    • 如果您拥有该问题,我相信您应该会看到一个可单击的勾号?
    • 知道了。再次感谢您,非常感谢。我用谷歌搜索了这个废话,然后你在几分钟内回复了我。我很感激。
    【解决方案2】:

    假设 WinForms,使用 Control.ModifierKeys,例如:

    private void button1_Click(object sender, EventArgs e) {
        MessageBox.Show(Control.ModifierKeys.ToString());
    }
    

    假设 WPF,使用 Keyboard.Modifiers,例如:

    private void Button_Click(object sender, RoutedEventArgs e) {
        MessageBox.Show(Keyboard.Modifiers.ToString());
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-07
      • 1970-01-01
      • 1970-01-01
      • 2018-02-04
      • 2019-05-19
      相关资源
      最近更新 更多