检测 Shift+1 作为 Key.Add

发布于 2024-10-16 15:22:19 字数 336 浏览 2 评论 0原文

我想检测用户在 .net 4 WPF KeyDown 事件处理程序中按下“add”键。为此,我使用以下测试:

if (e.Key == Key.Add)

这不会检测用户按下 Shift+1(对应于我的键盘布局上的“add”)时的情况。
我怎样才能检测到这个?我不相信测试

if (e.Key == Key.D1 && Keyboard.Modifiers == ModifierKeys.Shift)

是正确的解决方案,因为它可能会映射到另一个键盘布局上的其他位置。

有什么建议吗?

I would like to detect the user pressing the "add" key in the .net 4 WPF KeyDown event handler. To do this I use the following test:

if (e.Key == Key.Add)

This doesn't detect the case when the user presses Shift+1 (which corresponds to "add" on my keyboard layout).
How can I detect this? I'm not convinced that testing

if (e.Key == Key.D1 && Keyboard.Modifiers == ModifierKeys.Shift)

is the right solution as it may be mapped elsewhere on another keyboard layout.

Any suggestions?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

柒夜笙歌凉 2024-10-23 15:22:19

您可以考虑改用 KeyPress 事件处理程序。

You might consider using the KeyPress event handler instead.

红颜悴 2024-10-23 15:22:19
private void trackBarFrames_KeyDown(object sender, KeyEventArgs e)
{
    switch ( e.KeyCode)
    {
        case Keys.Add :
            // Nummeric Keypad Add 
            AddSomething();
            break;
        case Keys.Oemplus :
            // Regular keyboard Add
            // OemPlus is assigned to the regular keyboard key with a "Add" Sign but doesn not take shift conditions in account..!
            if (e.Modifiers == Keys.Shift)
            {
                AddSomething();
            }
            break;
    }
}
private void trackBarFrames_KeyDown(object sender, KeyEventArgs e)
{
    switch ( e.KeyCode)
    {
        case Keys.Add :
            // Nummeric Keypad Add 
            AddSomething();
            break;
        case Keys.Oemplus :
            // Regular keyboard Add
            // OemPlus is assigned to the regular keyboard key with a "Add" Sign but doesn not take shift conditions in account..!
            if (e.Modifiers == Keys.Shift)
            {
                AddSomething();
            }
            break;
    }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文