选择TextBox WPF中的所有文本

时间:2017-06-22 12:27:56

标签: c# wpf events textbox

我不知道为什么我的代码不起作用。 我想,当单击一个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>

事件发生,但未选择文本

3 个答案:

答案 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;
}