我不知道为什么我的代码不起作用。 我想,当单击一个textBox时,选择里面的所有文本来整体编辑它。
我的代码:
private void XValue_PreviewMouseDown(object sender, MouseButtonEventArgs e)
{
((TextBox)sender).SelectAll();
}
XAML代码:
<TextBox x:Name="XValue" Text="{Binding XInitValue, StringFormat={}{0:#,0.0000}}" Width="80" VerticalAlignment="Center" PreviewMouseDown="XValue_PreviewMouseDown" ></TextBox>
事件发生,但未选择文本
答案 0 :(得分:0)
您可以处理GotKeyboardFocus
事件并使用调度程序:
private void XValue_GotKeyboardFocus(object sender, KeyboardFocusChangedEventArgs e)
{
var textBox = ((TextBox)sender);
textBox.Dispatcher.BeginInvoke(new Action(() =>
{
textBox.SelectAll();
}));
}
或PreviewMouseDown
事件。关键是使用调度员。
答案 1 :(得分:-1)
我尝试并设想它只在设置数据上下文后才能工作。
答案 2 :(得分:-1)
问题是触发事件后如何集中控件。您需要编写e.Handled = true;
,以防止焦点冒泡。
private void XValue_PreviewMouseDown(object sender, MouseButtonEventArgs e)
{
((TextBox)sender).SelectAll();
e.Handled = true;
}