zoukankan      html  css  js  c++  java
  • WPF e.Systemkey的一个坑

    当用代码去控制按键盘F10按钮的时候,切换TabControl的标签页,然后再按其余的键盘键,无法响应

    原因就是这个systemkey,是因为F10为系统的按键,用e.key==key.f10是无效的,只能用systemkey,那么问题来了,

    一旦用了这个systemkey之后后续的键盘消息,previewkeydown是收不到的,不管设置什么焦点都没用。

    最后加上了一句e.handle=true;即可解决,大致意思为:我已经处理完了,系统别再搞其他事情了

    附上代码:

    xmal:

       <Grid Name="grid1">

            <TabControl Name="tab">
            </TabControl>
            <Label Height="50" Width="500" Name="lab" Background="BlanchedAlmond" Content="1"></Label>

        </Grid>

    .cs:

     public partial class MainWindow : Window
        {
            public MainWindow()
            {
                InitializeComponent();
                init_tab();
                PreviewKeyDown += (sender, e) =>
                {
                    if (e.SystemKey == Key.F10)
                    {
                        tab.SelectedIndex = 3;
                        e.Handled = true;
                    }
                    if (e.Key == Key.F5)
                    {
                        lab.Content = lab.Content + "2";
                    }
                };
            }

            public void init_tab()
            {
                TabItem item1 = new TabItem() { Header = "0", Content = "11111111" };
                TabItem item2 = new TabItem() { Header = "1", Content = "22222222" };
                TabItem item3 = new TabItem() { Header = "2", Content = "33333333" };
                TabItem item4 = new TabItem() { Header = "3", Content = "44444444" };
                tab.Items.Add(item1);
                tab.Items.Add(item2);
                tab.Items.Add(item3);
                tab.Items.Add(item4);
            }
        }

    总结:估计是系统做了些其他乱七八糟的处理,导致键盘消息无法接受,但是有个很奇怪的现象,

    按数字键是可以接收到的,即按了F10之后,再按数字键第一次是没反应的,第二次就有反应了,也是醉了。

  • 相关阅读:
    学习之Struts2框架实现原理----个人理解
    The import java.util cannot be resolved The import javax.servlet cannot be resolved
    谈谈HashSet的存储原理
    RabbitMQ的问题
    剑指Offer:合并列表(25)
    剑指Offer:反转列表(24)
    剑指Offer:链表中倒数第 K 个结点(22)
    剑指Offer:调整数组顺序使奇数位于偶数前面(21)
    剑指Offer:机器人的运动范围(13)
    剑指Offer:变态跳台阶(10.4)
  • 原文地址:https://www.cnblogs.com/kevinWu7/p/10163555.html
Copyright © 2011-2022 走看看