Nit*_*ost 3 .net c# overriding keypress winforms
所以我不得不重写ProcessCmdKey以便检测我的winform中的Tab键.有关上下文,请参阅此问题 既然我已经成功修复了Tabing问题,我现在意识到我还需要检查shift + tab逻辑以允许用户向后移动.我似乎无法弄明白.以下是我尝试过的一些内容,到目前为止还没有成功.
private bool isTab = false;
private bool isShiftTab = false;
private StringBuilder ShiftTab = new StringBuilder();
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
if (keyData == Keys.Tab)
{
isTab = true;
ShiftTab.Append("Tab");
}
else
{
isTab = false;
}
if (keyData == Keys.Shift)
{
ShiftTab.Append("Shift");
}
if (ShiftTab.ToString() == "TabShift" || ShiftTab.ToString() == "ShiftTab")
{
isShiftTab = true;
}
if ((Control.ModifierKeys & Keys.Tab) != 0)
{
//code
}
return base.ProcessCmdKey(ref msg, keyData);
}
Run Code Online (Sandbox Code Playgroud)
我认为你必须像这样组合两个键:
if (keyData == (Keys.Shift | Keys.Tab)) isShiftTab = true;
Run Code Online (Sandbox Code Playgroud)
然后您可以使用它来跳过标签覆盖.
| 归档时间: |
|
| 查看次数: |
3782 次 |
| 最近记录: |