如何知道ctrl + space推送的时间?

时间:2011-11-17 07:44:55

标签: c# wpf textbox

我想在按下 Ctrl + space 时调用函数。我搜索得更多但找不到我想要的东西。

4 个答案:

答案 0 :(得分:6)

您需要在TextBox上为KeyDown添加一个事件处理程序,如:KeyDown="TextBox_KeyDown"。 然后在事件处理程序中:

if (e.Key == Key.Space && e.KeyboardDevice.Modifiers == ModifierKeys.Control)
{ 
      //Do Stuff
}

答案 1 :(得分:2)

使用类似的东西:

private void Window_KeyDown(object sender, KeyEventArgs e)
{
    if (e.Key == Key.Space && 
       (Keyboard.Modifiers & ModifierKeys.Control) == ModifierKeys.Control)
    {
        // Do what you need here
    }
}

答案 2 :(得分:1)

这应该让你工作 -

private void Window_PreviewKeyDown(object sender, KeyEventArgs e)
{
  if (e.Key == Key.Space && Keyboard.Modifiers == ModifierKeys.Control)
  { 
  }
}

答案 3 :(得分:1)

如果你想要捕捉所有的关键,无论你是否有焦点,你只需要在你的课程中加入构造函数:

// To capture keyboard
EventManager.RegisterClassHandler(typeof(Window), Keyboard.KeyDownEvent, new System.Windows.Input.KeyEventHandler(keyDown), true);

并添加方法:(这是一个例子,它不适合你想要的东西)

private void keyDown(object sender, System.Windows.Input.KeyEventArgs e)
{
    if (e.Key == Key.Space)
    {
        code;
    }
    else if ((Keyboard.IsKeyDown(Key.LeftCtrl) || Keyboard.IsKeyDown(Key.RightCtrl)) &&    Keyboard.IsKeyDown(Key.T))
    {
        code;
    }
}