zoukankan      html  css  js  c++  java
  • WPF中更改键盘默认指令小结

    在System.Windows.Input 里有着所有键的集合,经测试要注意以下几点(纯实践所得经验,还请高手指明下面不明白地方的原因):

    1. 普通情况下Key就够用了

    2. 当某个键在特定的环境下充当某种系统默认的功能时就要用到SystemKey,如Alt键在窗口中默认是激活菜单,这时用Key来判断就不起作用了。

    如下例作示,在textBox1中按右Alt键将还是激活菜单,而左Alt键盘却实现了换行的功能。

    private void textBox1_KeyDown(object sender, KeyEventArgs e)
    {
    if (e.SystemKey == Key.LeftAlt || e.Key == Key.RightAlt)
    {
    //添加一个换行字符
    textBox1.SelectedText = Environment.NewLine;
    //光标向前移动一位
    textBox1.Select(textBox1.SelectionStart + 1, 0);
    e.Handled
    = true;
    }
    }

    3.组合键的使用,首先,组合键的实现是使用系统默认功能,所以必须用SystemKey,然后需要用到Keyboard.Modifiers,如:Alt+F

    if (Keyboard.Modifiers==ModifierKeys.Alt&&e.SystemKey==Key.F)
    //do some work

    4.  在支持换行的控件中(如TextBox开启AcceptsReturn="True"时)回车键变成了换行功能,而Ctrl+回车键才是默认的回车功能,注意这时虽然是组合键,但只有用Key才有效(不明原因,请指教):

    if(Keyboard.Modifiers == ModifierKeys.Control && e.Key == Key.Enter)
    {
    //成功截取CTRL+ENTER
    }

    if (Keyboard.Modifiers == ModifierKeys.Control && e.SystemKey == Key.Enter)
    {
    //无效
    }
    并且此时用e.SystemKey == Key.Return也无法截取回车(不明原因,请指教)。

  • 相关阅读:
    windows(win10)下的mysql解压版安装
    微信和QQ网页授权登录
    图片前端重绘前端压缩和自动调整旋转
    时间的显示
    magento中文语言包的使用
    div垂直居中(js)
    centOS IP能ping通但是域名ping不通
    python3 使用pyinstaller打包exe 指定虚拟路径模块
    Flask 多app案例
    将excel的资产数据生成二维码图片
  • 原文地址:https://www.cnblogs.com/Laro/p/1958628.html
Copyright © 2011-2022 走看看