2011-04-11 50 views
0

基本上,我有一個面板內的文本框。在v1.1框架中,像ctrl + C和ctrl + V這樣的快捷鍵對於文本框並不是隱含的,而必須針對KeyUp事件進行編碼。所以,我創建了一個通用類,它繼承了文本框,並有一個事件處理程序用於通過鍵盤快捷鍵進行復制和粘貼。 我有的問題是,當我按Ctrl + V在面板中的文本框內雙倍複製文本。我在想,這可能是因爲面板(可滾動控件)已經設置了用於粘貼的KeyUp事件,並且這個事件先發生,然後是我寫的。我在想,如果有重寫面板的KeyUp事件,所以它不會觸發粘貼? (如果我的邏輯正確)歡迎任何想法,爲什麼發生雙貼。 (雙貼只發生在一個文本框是在面板內部)面板內的文本框.NET 1.1 KeyUp

private void dbTextBox_KeyUp(object sender, System.Windows.Forms.KeyEventArgs e) 
{ 
if (e.KeyData == (Keys.Control | Keys.C)) (sender as TextBox).Copy(); 
if (e.KeyData == (Keys.Control | Keys.V)) (sender as TextBox).Paste(); 
} 
+0

可以共享的代碼片斷什麼的關鍵了事件中發生了? – reggie 2011-04-11 12:17:45

+0

'私人無效dbTextBox_KeyUp(對象發件人,System.Windows.Forms.KeyEventArgs E) \t \t { \t \t \t如果(e.KeyData ==(Keys.Control | Keys.C))(發送方被作爲文本框)。複製(); (e.KeyData ==(Keys.Control | Keys.V))\t(sender as TextBox).Paste(); \t \t \t \t}' – mariusgherman 2011-04-11 12:29:49

回答

0

你試過e.Handled = true;