C#-判斷Shift,Alt,Ctrl是否被按下,確定所按下的組合鍵


在創建接受用戶擊鍵的應用程序時,您還可能希望監視 SHIFT、ALT 和 CTRL 鍵等組合鍵。當一個組合鍵與其他鍵同時按下,或在單擊鼠標的同時按下時,您的應用程序能夠做出適當響應:字母 S 可能僅導致一個“S”出現在屏幕上,但是如果按下 CTRL+S,則可保存當前文檔。

確定所按下的組合鍵

對 ModifierKeys 屬性和 Keys 枚舉的值使用按位與運算符(在 Visual Basic 中為 And,在Visual C# 中為 &),確定所按下的組合鍵。(ModifierKeys 是 Control 類的共享成員;有關共享成員的更多信息,請參閱共享成員。)
' Visual Basic
Private Sub button1_KeyPress(ByVal sender As Object, ByVal e As _
System.Windows.Forms.KeyPressEventArgs) Handles button1.KeyPress
If (Control.ModifierKeys And Keys.Shift) = Keys.Shift Then
MessageBox.Show("Pressed " & Keys.Shift)
End If
End Sub

 

http://www.cnblogs.com/hfzsjz/archive/2010/05/31/1748046.html

 


// C#
private void button1_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e) {
if ((Control.ModifierKeys & Keys.Shift) == Keys.Shift) {
MessageBox.Show("Pressed " + Keys.Shift);
}
}   

 

------------------------------------------------------------------------------------------------------------------------

首先用BOOL變量保存Ctrl鍵是否被按下,初始值為FALSE,BOOL的賦值在KeyDown事件里,判斷Ctrl鍵是否被按下,如果被按下,BOOL變量為TRUE,否則為FALSE。KeyUp事件里將BOOL變量設置為FALSE
其次在MouseDown事件里判斷BOOL變量的值。

------------------------------------------------------------------------------------------------------------------------

if ((Control.ModifierKeys & Keys.Control) == Keys.Control)
{
MessageBox.Show("Ctrl健被按下");
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM