使用Keys.Shift和Keys.ShiftKey之间的混淆

本文关键字:Keys 之间 ShiftKey Shift 使用 | 更新日期: 2023-09-27 18:00:31

C#WinForms:我有一些这样的代码:

if (GetAsyncKeyState((int)Keys.ShiftKey) != 0)
{
    nShift = (nShift | 1);
}

如果我将If更改为Keys.Shift,那么它可以像向前切换一样正常工作,但If则会中断向后切换,即键盘上的TAB+SHIFT键。但我想让前向和后向选项卡都工作。如何将其更改为正确工作?

使用Keys.Shift和Keys.ShiftKey之间的混淆

ShiftKey值确定事件是否是由于按下Shift键/向上按下Shift键等而引发的。Shift值是一个修饰符,可以与其他关键点组合使用。

因此,如果值为A + Shift,则意味着用户在按住Shift键的同时按下了A键。

您没有提供足够的信息来说明为什么选项卡会受到影响,但我怀疑您没有处理正确指定Control和Shift修饰符(以及Tab键)的情况。或者您正在处理事件并阻止正常的选项卡显示。

.右移键和左移键之间的净差异就是答案。我们应该说Keys.LShiftKey和Keys.RShiftKey