TextBox(PasswordBox)SelectAll方法不起作用

时间:2014-05-12 14:01:29

标签: wpf textbox selectall passwordbox

我在这里有一些概念问题。我知道如何选择TextBoxPasswordBox中的所有文字。通过GotKeyboardFocusPreviewMouseLeftButtonDown活动,您知道。这很好。

XAML:

PreviewMouseLeftButtonDown="PasswordOnPreviewMouseDown"
GotKeyboardFocus="SelectAllPassword"

代码隐藏

private void SelectAllPassword(Object sender, RoutedEventArgs e)
{
    var pb = (sender as PasswordBox);
    if (pb != null)
        pb.SelectAll();
}

private void PasswordOnPreviewMouseDown(Object sender, MouseButtonEventArgs e)
{
    var pb = (sender as PasswordBox);
    if (pb != null)
        if (!pb.IsKeyboardFocusWithin)
        {
            e.Handled = true;
            pb.Focus();
        }
}

但问题是 - 为什么这个不起作用?

XAML:

PreviewMouseLeftButtonDown="PasswordOnPreviewMouseDown"

代码隐藏:

private void PasswordOnPreviewMouseDown(Object sender, MouseButtonEventArgs e)
{
    _txtPassword.SelectAll();
    e.Handled = true;
}

_txtPassword - TextBoxPasswordBox控件的位置。那么为什么我要接受Focus文本控制?

1 个答案:

答案 0 :(得分:3)

实际上,选择正在进行中。

您可能会觉得文字没有被选中,因为它没有在视觉上突出显示,但那是因为TextBox没有聚焦。

尝试使用TextBox键将焦点放在Tab上,您会看到整个文字突出显示。