Gra*_*mas 91
使用.NET 4,您可以使用以下简单的内容:
private void Control_DoubleClick(object sender, EventArgs e)
{
if (ModifierKeys.HasFlag(Keys.Control))
{
MessageBox.Show("Ctrl is pressed!");
}
}
Run Code Online (Sandbox Code Playgroud)
如果您不使用.NET 4,则Enum.HasFlag
撤销可用性,但要在以前的版本中获得相同的结果:
private void CustomFormControl_DoubleClick(object sender, EventArgs e)
{
if ((ModifierKeys & Keys.Control) == Keys.Control)
{
MessageBox.Show("Ctrl is pressed!");
}
}
Run Code Online (Sandbox Code Playgroud)
Rob*_*Rob 26
只是为了完整性... ModifierKeys
是一个静态属性Control
,所以即使你没有直接在事件处理程序中,你也可以测试它:
public static bool IsControlDown()
{
return (Control.ModifierKeys & Keys.Control) == Keys.Control;
}
Run Code Online (Sandbox Code Playgroud)
即便如此
private void Control_MouseDoubleClick(object sender, MouseEventArgs e)
{
if (ModifierKeys == Keys.Control)
MessageBox.Show("with CTRL");
}
Run Code Online (Sandbox Code Playgroud)
这不是对手头问题的真正答案,但我需要在控制台应用程序中执行此操作,细节稍有不同.
我必须添加对WindowsBase
和的引用PresentationFramework
,并且在那时我可以做:
if (System.Windows.Input.Keyboard.Modifiers == ModifierKeys.Control)
blah
Run Code Online (Sandbox Code Playgroud)
只是在这里添加这个,以防其他人正在做类似的事情.
归档时间: |
|
查看次数: |
52927 次 |
最近记录: |