将焦点设置在 UserControl 中的 TextBox 上

Eri*_*ark 4 c# wpf user-controls textbox

在我的程序中,我有一个用户控件,它使用内容展示器在窗口上显示数据。我想textBox在启动时简单地将光标焦点设置在我的窗口中的某个位置。

通常我会通过窗口的代码隐藏来做到这一点,如下所示: textBox.Focus();

但是,textBox是在用户控件中定义的,并且工作方式似乎不同。到目前为止,我已经在用户控件的代码隐藏中尝试了与上面相同的方法。

为什么这不起作用?如果textBox是在用户控件中定义的,如何设置焦点?

我尝试过的....:

用户控制:

public UserControl()
{
    InitializeComponent();

    FocusManager.SetFocusedElement(this, textBox);
}
Run Code Online (Sandbox Code Playgroud)

用户控制:

public UserControl()
{
    InitializeComponent();

    textBox.Focusable = true;
    Keyboard.Focus(textBox);
}
Run Code Online (Sandbox Code Playgroud)

JTF*_*age 5

试试这个: FocusManager.SetFocusedElement

FocusManager.SetFocusedElement(parentElement, textBox)
Run Code Online (Sandbox Code Playgroud)

或从 msdn 网站:

textBox.Focusable = true;
Keyboard.Focus(textBox);
Run Code Online (Sandbox Code Playgroud)

注意:您不能在构造函数中设置焦点。如果是,则此时尚未创建 UI 元素。您应该在控件的 Loaded 事件期间设置焦点。

  • `private void Document_Loaded(object sender, RoutedEventArgs e) { textbox.Focusable = true; textbox.Focus();}` (2认同)