[英]Test for 'Ctrl' keydown in C#
bool ctrl = ((Control.ModifierKeys & Keys.Control) == Keys.Control);
如果要在Key按下處理程序中檢測,您將查看修改器屬性:
private void button1_KeyPress(object sender,
System.Windows.Forms.KeyPressEventArgs e)
{
if ((Control.ModifierKeys & Keys.Control) == Keys.Control)
{
MessageBox.Show("Pressed " + Keys.Control);
}
}
實際上,看着它並且看到它並沒有使用e
參數,只要你的“this”來自Form或Control,那么你可以隨時進行這個調用,而不僅僅是在鍵盤事件處理程序中。
但是,如果要確保組合,例如按下Ctrl - A,則需要一些額外的邏輯。
private void myKeyPress(object sender,
System.Windows.Forms.KeyPressEventArgs e)
{
if (((Control.ModifierKeys & Keys.Control) == Keys.Control)
&& e.KeyChar == 'A')
{
SelectAll();
}
}
為舊問題添加遲到的答案......
其他答案讀取控制鍵的當前狀態。 如果要直接從傳遞的事件args讀取控制標志(即在事件發生時),請使用KeyUp
或KeyDown
事件(而不是KeyPress
):
private void HandleTextKeyDown(object sender, KeyEventArgs e)
{
if (e.Control && e.KeyCode == Keys.A)
{
((TextBox)sender).SelectAll();
e.Handled = true;
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.