[英]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.