WPF e.Systemkey的一个坑
来源:互联网 发布:mac flamingo口红 编辑:程序博客网 时间:2024/05/01 15:27
当用代码去控制按键盘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之后,再按数字键第一次是没反应的,第二次就有反应了,也是醉了。
- WPF e.Systemkey的一个坑
- 第一章 建立一个WPF/E工程
- WPF/E
- WPF/E
- WPF, WPF/E释疑
- WPF, WPF/E释疑
- [转]WPF, WPF/E释疑
- [转]WPF, WPF/E释疑
- 一个综合性的WPF例子
- 一个综合性的WPF例子
- wpf写的一个日历
- 微软WPF/E系统
- Apollo or WPF/E
- 第一个WPF-E
- WPF/E简介
- WPF/E 简介
- WPF/E简介
- WPF/E简介
- NETIF_FLAG_LINK_UP的意义和作用
- makefile相关链接
- CentOS目录结构超详细版
- 朴素贝叶斯算法的python实现
- 记录:dex-method-counts.jar统计Android apk中方法数目
- WPF e.Systemkey的一个坑
- js打印页面指定区域内容
- pomelo多进程实现
- C++ 注册表编程
- 一级缓存二级缓存分布缓存页面缓存的主要区别
- python pandas series
- 应用程序无法正常启动0xc00007b
- #define
- 内存优化