WPF始终将焦点放在文本框上。

6

每当我在WPF应用程序上单击任何内容时,我希望始终关注特定的TextBox

3个回答

7

2

有一个事件处理程序MouseLeftMouseButton。当事件处理程序被触发时,在处理程序内部使用textbox.Focus()


2
只有在使用鼠标失去焦点时才能起作用。但是如果有人按Tab键呢? - Marcel B

1

如果我没理解错的话,您的意图是获取键盘命令并在其他控件获得焦点时将按下的字符显示在文本框中。

如果是这种情况,您可以将键盘命令路由到根控件(顶级控件...例如:窗口),分析它们并在文本框中显示。如果有帮助的话,我会尝试给出示例。

编辑:

private void Window_KeyDown(object sender, System.Windows.Input.KeyEventArgs e)
{
  if (Keyboard.Modifiers != ModifierKeys.Shift)
  {
    if (e.Key > Key.A && e.Key < Key.Z)
    {
      textBox1.Text += e.Key.ToString().ToLower();
    }
  }
  else
  {
    if (e.Key > Key.A && e.Key < Key.Z)
    {
      textBox1.Text += e.Key.ToString();
    }
  }            
  e.Handled = true;
}

是的,那是正确的。你能举个例子吗?谢谢! - Tan
嘿,Tan,看一下我的修改。现在分析除了字母以外的键就交给你了 :) - Amsakanna

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接