zoukankan      html  css  js  c++  java
  • C#判断Shift,Alt,Ctrl是否被按下,确定所按下的组合键

    在创建接受用户击键的应用程序时,您还可能希望监视 SHIFT、ALT 和 CTRL 键等组合键。当一个组合键与其他键同时按下,或在单击鼠标的同时按下时,您的应用程序能够做出适当响应:字母 S 可能仅导致一个“S”出现在屏幕上,但是如果按下 CTRL+S,则可保存当前文档。

    确定所按下的组合键

    对 ModifierKeys 属性和 Keys 枚举的值使用按位与运算符(在 Visual Basic 中为 And,在Visual C# 中为 &),确定所按下的组合键。(ModifierKeys 是 Control 类的共享成员;有关共享成员的更多信息,请参阅共享成员。)
    ' Visual Basic
    Private Sub button1_KeyPress(ByVal sender As Object, ByVal e As _
    System.Windows.Forms.KeyPressEventArgs) Handles button1.KeyPress
    If (Control.ModifierKeys And Keys.Shift) = Keys.Shift Then
    MessageBox.Show("Pressed " & Keys.Shift)
    End If
    End Sub

    // C#
    private void button1_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e) {
    if ((Control.ModifierKeys & Keys.Shift) == Keys.Shift) {
    MessageBox.Show("Pressed " + Keys.Shift);
    }
    }   

    ------------------------------------------------------------------------------------------------------------------------

    首先用BOOL变量保存Ctrl键是否被按下,初始值为FALSE,BOOL的赋值在KeyDown事件里,判断Ctrl键是否被按下,如果被按下,BOOL变量为TRUE,否则为FALSE。KeyUp事件里将BOOL变量设置为FALSE
    其次在MouseDown事件里判断BOOL变量的值。

    ------------------------------------------------------------------------------------------------------------------------

    if ((Control.ModifierKeys & Keys.Control) == Keys.Control)
    {
    MessageBox.Show("Ctrl健被按下");
    }

    推荐阅读

    http://www.tao36524.com

    http://www.tao36524.cn

  • 相关阅读:
    【分享】管理的最高境界是简单
    建立市场化风险评估机制推进地方政府信用评级建设
    手游-神雕侠侣 85侠客纪攻略(已通关)
    使用git的分支功能实现定制功能摘取与组合的想法
    组内正则培训记录
    组内Linq培训记录
    一次代码重构记录
    git代码库误操作还原记录
    关于代码重构的开始
    如何管理高手、大牛?
  • 原文地址:https://www.cnblogs.com/hfzsjz/p/1748046.html
Copyright © 2011-2022 走看看