如何在获得焦点时选择文本框中的所有文本

时间:2014-11-05 01:54:24

标签: c# windows-phone-8.1

在Windows手机中,当TextBox具有焦点时,如何选择文本框中的所有文本?

我尝试设置Textbox的get focus属性:

    private void TextBox_GotFocus(object sender, RoutedEventArgs e)
    {
        TextBox textBox = (TextBox)sender;

        textBox .SelectAll();
    }

我看到的是我看到所有文本被选中1-2秒然后又回到光标模式(即1个闪烁线)。

3 个答案:

答案 0 :(得分:2)

我在WPF上遇到了同样的问题,并设法解决了这个问题。不确定你是否可以使用我使用的,但基本上你的代码看起来像:

    private void TextBox_GotFocus(object sender, RoutedEventArgs e)
    {
        TextBox textBox = (TextBox)sender;

        textBox .CaptureMouse()
    }

    private void TextBox_GotMouseCapture(object sender, RoutedEventArgs e)
    {
        TextBox textBox = (TextBox)sender;

        textBox.SelectAll();
    }

private void TextBox_IsMouseCaptureWithinChanged(object sender, RoutedEventArgs e)
    {
        TextBox textBox = (TextBox)sender;

        textBox.SelectAll();
    }

所有事件都连接到原始文本框。如果这对您不起作用,也许您可​​以用CaptureTouch替换CaptureMouse(并使用适当的事件)。祝你好运!

答案 1 :(得分:0)

您可以尝试使用此代码,

    private void TextBox_GotFocus(object sender, RoutedEventArgs e)
    {
        String sSelectedText = mytextbox.SelectedText;
    }

如果用户点击选择后出现的复制图标,它将被复制,如果你想以编程方式进行,你可以试试这个

DataPackage d = new DataPackage();
d.SetText(selectedText);
Clipboard.SetContent(d);

我建议在其他事件而不是gotfocus中进行复制,因为这会在用户点击文本字段后立即触发,因此在没有实际输入文本时会调用此方法。

答案 2 :(得分:0)

new String[]{KEY_PRICE},