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是否锁定\n";
 4             int intCapsLock = GetKeyState(20);
 5 
 6             if (intCapsLock == 0)
 7                 strCheak += "CapsLock未锁定\n";
 8             else
 9                 strCheak += "CapsLock锁定\n";
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键盘操作在实际中的应用

posted @ 2016-01-18 12:18  SeeKHit  阅读(982)  评论(0编辑  收藏  举报