我这里有一些概念问题。我知道如何选择 TextBox
或 PasswordBox
中的所有文本。通过 GotKeyboardFocus
和 PreviewMouseLeftButtonDown
事件,您知道。这很好用。
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
- TextBox
或 PasswordBox
控件。那么,为什么我必须使用 Focus
文本控件?
最佳答案
实际上,选择是有效的。
您可能会觉得文本没有被选中,因为它没有在视觉上突出显示,但那是因为 TextBox
没有获得焦点。
尝试使用 Tab
键将焦点放在 TextBox
上,您会看到整个文本突出显示。
关于wpf - TextBox (PasswordBox) SelectAll 方法不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23611117/