当获得焦点时,尝试在对话框中选择文本

本文关键字:对话框 选择 文本 焦点 | 更新日期: 2023-09-27 18:01:23

我试图在对话框中选择整个文本,但是我不能这样做。

我有一个类Participant,它具有属性Firstname。当我在对话框中设置参与者时,我调用了Focus-Method。然而,当对话框打开时,它只在焦点中,但没有被选中。

This is my Focus-Method:

public void FocusSurname()
{
        SurnameBox.SelectAll();
        SurnameBox.Focus();
        Keyboard.Focus(SurnameBox);
}

在对话框中,我设置我的参与者如下:

Participant Participant
    {
        get { return _participant; }
        set
        {
           _participant = value;
           FocusSurname();
        }
 }

我的对话框开源代码差不多是:

 public void ShowDialog(object owner)
 {
     Owner = owner as Window;
     ShowDialog();
 }

为什么文本没有被选中?(

即使我在ShowDialog-Method中调用FocursSurname,也没有任何变化。

当获得焦点时,尝试在对话框中选择文本

您想要完成的是查看相关代码(在我看来)。mvvm指南或模式使用(或至少我对它的理解)表明,您希望为此使用行为或附加属性。意味着将xaml功能扩展到插件视图相关行为…

我发现了一个与你的主题相关的stackoverflow问题。看看这是否有帮助……或者试着从那个解中推导…

链接:

初始焦点和选择所有行为

HTH

将以下事件处理程序方法绑定到文本框的GotFocus事件

private static void SelectText(object sender, RoutedEventArgs e)
{
    var textBox = e.OriginalSource as TextBox;
    Keyboard.Focus(textBox);
    textBox.SelectAll();
}