2010-09-21 33 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表單上。