• C#开发实例 键盘篇


    键盘的操作控制:

      键盘和鼠标一样是重要输入设备的一部分。开发过程中,会涉及到很多的键盘操作控制。

    2.1获取键盘信息

    ①获取组合键

    Windows中有很多默认的组合键,如Ctrl+v,Ctrl+A。本例实现了获取TextBox中组合键的功能,用到KeyEventArgs类中的KeyCode属性,KeyCode属性用来获取KeyUp,KeyDown事件

    1         private void textBox_KeyDown(object sender, KeyEventArgs e)
    2         {
    3             if ((e.Control == true) && (e.KeyCode == Keys.A))
    4                 MessageBox.Show("您按下了Ctrl+A");
    5         }

    ②获取功能键

    功能键包括F1,F2,空格键等,获取功能键

    1         private void textBox_KeyDown(object sender, KeyEventArgs e)
    2         {
    3             if (e.KeyCode == Keys.F1)
    4                 MessageBox.Show("您按下了F1","提示",MessageBoxButtons.RetryCancel);//显示重试按钮
    5         }

    ③判断Caps lock是否锁定

    用户在使用键盘输入的时候,可以对有些按键进行锁定,如Numlock,CapsLock。主要用到的API函数为GetKeyState 需要手动引入方法所在的类库。

    1         [System.Runtime.InteropServices.DllImport("user32.dll", EntryPoint = "GetKeyState")]
    2         public static extern int GetKeyState(int intkey);//intkey:虚拟键键码

    主要代码:

     1         private void button1_Click(object sender, EventArgs e)
     2         {
     3             string strCheak = "判断CapsLock是否锁定
    ";
     4             int intCapsLock = GetKeyState(20);
     5 
     6             if (intCapsLock == 0)
     7                 strCheak += "CapsLock未锁定
    ";
     8             else
     9                 strCheak += "CapsLock锁定
    ";
    10             MessageBox.Show(strCheak, "判断是否锁定");
    11         }

    ④将回车映射成Tab键

    在用户登录界面,很多时候用户输入完用户名,按下enter键可以直接切换鼠标焦点,进入输入密码的文本框。本例主要用到KeyEventArgs类中的KeyValue和SendKeys类的Send方法。 

    1         private void textBox1_KeyDown(object sender, KeyEventArgs e)
    2         {
    3             if (e.KeyValue == 13)
    4             {
    5                 SendKeys.Send("{TAB}");
    6             }
    7         }

    2.2键盘热键设置

    ①屏蔽Alt+F4组合键关闭窗口

    在程序使用过程中,有时候希望屏蔽Alt+F4键关闭窗口,主要用到的是KeyEventArgs类中的Alt属性,KeyValue属性,和Handled属性,Alt和Handled属性都为bool型。

    1         private void Frm_KeyDown(object sender, KeyEventArgs e)
    2         {
    3             if (e.Alt && e.KeyValue == 115)
    4                 e.Handled = true;
    5         }

    ②按Esc关闭窗口

    程序使用过程中,为了方便操作,通过Esc键退出窗口。主要用到的是Application类的Exit方法。

            private void Frm_KeyDown(object sender, KeyEventArgs e)
            {
                if (e.KeyData == Keys.Escape) { 
                    MessageBox.Show("关闭窗口");
                    Application.Exit();                
                }
            }

    2.3键盘操作在实际中的应用

  • 相关阅读:
    网曝!互联网公司那些老司机才懂的秘密~~
    中国IT行业薪资:与销售相比,程序员真得很“穷”
    太简单了,教你去掉Java代码中烦人的“!=null”
    怎么判断自己在不在一家好公司?
    内部泄露版!互联网大厂的薪资和职级一览
    重磅!GitHub突然宣布,对全球人免费开放全部核心功能
    痛心!Pandownload开发者被抓!我终于决定使用Docker搭建一个多端同步网盘!
    退税:我承认我有赌的成分
    golang实现的简单优先队列
    ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (13)解答
  • 原文地址:https://www.cnblogs.com/SeekHit/p/5133781.html
Copyright © 2020-2023  润新知