2012-08-04 75 views
0

我有2個問題。首先,我想要做一些類似於下面的代碼來防止(CTRL + C)在文本框中,但它不會工作。它不會在消息框中顯示任何內容。防止複製文本框的值

第二個問題是,當用戶按下我如何做一些事情(CTRL + C)沒有將剪貼板中保存或自動按下後刪除該值(CTRL + C)

下面是代碼:

private void textBox1_KeyDown(object sender, KeyEventArgs e) 
    { 
     if (e.KeyCode == Keys.C && e.KeyCode == Keys.LControlKey) 
     { 
      MessageBox.Show("NOT ALLOWED"); 
     } 

    } 

回答

3

您正在比較KeyCode的平等與兩個不同的值,它永遠不會是兩個。我想你的意思是檢查Control

if(e.KeyCode == Keys.C && e.Control) { 
    MessageBox.Show("NOT ALLOWED"); 
} 

至於停止複製操作,它應該是一樣簡單:

e.SuppressKeyPress = true; 

,並且可以使用經常清除剪貼板:

Clipboard.Clear(); 
+0

感謝它的工作。第二個問題呢? – aliboy38 2012-08-04 17:19:52

+0

@ aliboy38:查看修改。 – Ryan 2012-08-04 17:20:25

0

您可以使用系統級鍵盤掛鉤來截取鍵盤筆觸的任意組合。

鍵盤掛鉤函數是用.net在VC++中編寫的。但對於在C#中使用,有基於pinvoke的包裝庫。

在.net中搜索鍵盤鉤子。

有兩種類型的鉤子:應用程序級別和系統級別。根據您的要求,您可以做出正確的選擇。

我希望這可以幫助您進一步進行。