WPF e.Systemkey的一个坑
2021-01-16 21:11
标签:原因 cte 按钮 net 代码 window blog nbsp detail
当用代码去控制按键盘F10按钮的时候,切换TabControl的标签页,然后再按其余的键盘键,无法响应 原因就是这个systemkey,是因为F10为系统的按键,用e.key==key.f10是无效的,只能用systemkey,那么问题来了, 一旦用了这个systemkey之后后续的键盘消息,previewkeydown是收不到的,不管设置什么焦点都没用。 最后加上了一句e.handle=true;即可解决,大致意思为:我已经处理完了,系统别再搞其他事情了 附上代码: xmal: .cs: public partial class MainWindow : Window
public void init_tab() 总结:估计是系统做了些其他乱七八糟的处理,导致键盘消息无法接受,但是有个很奇怪的现象, 按数字键是可以接收到的,即按了F10之后,再按数字键第一次是没反应的,第二次就有反应了,也是醉了。 WPF e.Systemkey的一个坑 标签:原因 cte 按钮 net 代码 window blog nbsp detail 原文地址:https://www.cnblogs.com/lonelyxmas/p/12208803.html
{
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";
}
};
}
{
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);
}
}
文章标题:WPF e.Systemkey的一个坑
文章链接:http://soscw.com/index.php/essay/42878.html