2010-09-21 81 views
1

软件利用:C#,VS-2005检测Shift + Tab键功能分为Backspace键

是这可能覆盖Shift + Tab键函数/方法或检测Shift + Tab键功能,并利用其与退格?

在Shot中,用Backspace替换Shift + Tab函数。然后退格将像Shift + Tab键:

这是可能的C#?

+0

WinForms?安慰? Silverlight的? – Bobby 2010-09-21 08:31:19

+0

它适用于Winforms – mahesh 2010-09-21 08:41:51

回答

2

我想你正在制作一个双赢格式。注册一键按下事件:

private void Form1_KeyDown(object sender, KeyEventArgs e) 
{ 
    if (e.KeyCode == Keys.Tab && e.Shift) 
    { 
     // act like a backspace is pressed 
    } 
    else if (e.KeyCode == Keys.Back) 
    { 
     SendKeys.Send("+{TAB}"); // simualte a shift-tab press 
    } 
} 

要解决在评论中提到的问题@ liggett78,您可以设置

form.KeyPreview = true; 

处理子控件的所有重要事件从的KeyDown事件。

编辑:为了防止按Backspace键时删除字符的文本框,您可以:

private void Form1_KeyDown(object sender, KeyEventArgs e) 
{ 
    if (e.KeyCode == Keys.Back) 
    { 
     e.SuppressKeyPress = true; 
     SendKeys.Send("+{TAB}"); 
    } 
} 
+0

如果您在窗体上拥有控件(实际上总是如此),并且其中一个控件(例如文本框)是关注的,则该控件无效。 – liggett78 2010-09-21 08:55:53

+0

@Danny,无论你喜欢做什么,例如 – mahesh 2010-09-21 09:05:52

+0

@ liggett78:看我的编辑。 – 2010-09-21 09:06:41

0

覆盖ProcessDialogKeyProcessTabKey表单上。