在关键事件中检测密钥不在密钥枚举中

时间:2016-03-24 01:30:41

标签: c#

我们可以使用键事件

来检测键输入
private void KeyUp_Or_KeyDown_Event(object sender, KeyEventArgs e)
{
   if (e.Key==Key.SomeKey) //detect  key
   {
      //do something           
   }
}

但是Key Enum中似乎没有很多键(参见链接)

https://msdn.microsoft.com/en-us/library/system.windows.input.key(v=vs.110).aspx

如' \' ,' [' ,' ]' ,' `',' ='等等,

检测不在密钥枚举中的密钥的任何方法?

以文本框为例, 即使用户在文本框中键入了很多随机文本,我也想这样做,只要用户按下分配键我就可以检测到它。

1 个答案:

答案 0 :(得分:1)

构建一个快速测试应用程序,以查看您要查找的键的键值。

<Window x:Class="WpfApplication1.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525" KeyDown="Window_KeyDown">
    <TextBlock Name="MyTextBlock">Hit a key</TextBlock>
</Window>

代码背后:

public partial class MainWindow : Window
{
    public MainWindow()
    {
        InitializeComponent();
    }

    private void Window_KeyDown(object sender, KeyEventArgs e)
    {
        MyTextBlock.Text = Enum.GetName(typeof(System.Windows.Input.Key), e.Key);
    }
}

然后敲开钥匙,看看代码是什么。