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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在获得焦点时选择文本框中的所有文本相关的知识,希望对你有一定的参考价值。

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

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

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

        textBox .SelectAll();
    }

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

答案

我在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(并使用适当的事件)。祝好运!

另一答案

你可以尝试这个代码,

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

如果用户单击选择后出现的复制图标,它将被复制,如果您想以编程方式执行此操作,则可以尝试此操作

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

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

另一答案
protected override void OnStartup(StartupEventArgs e)
{
    //works for tab into textbox
    EventManager.RegisterClassHandler(typeof(TextBox),
        TextBox.GotFocusEvent,
        new RoutedEventHandler(TextBox_GotFocus));
    //works for click textbox
    EventManager.RegisterClassHandler(typeof(Window),
        Window.GotMouseCaptureEvent,
        new RoutedEventHandler(Window_MouseCapture));

    base.OnStartup(e);
}
private void TextBox_GotFocus(object sender, RoutedEventArgs e)
{
    (sender as TextBox).SelectAll();
}

private void Window_MouseCapture(object sender, RoutedEventArgs e)
{
    var textBox = e.OriginalSource as TextBox;
    if (textBox != null)
         textBox.SelectAll(); 
}

以上是关于如何在获得焦点时选择文本框中的所有文本的主要内容,如果未能解决你的问题,请参考以下文章

使用 jQuery 选择焦点上的所有文本

获得焦点时如何选择 JFormattedTextField 中的所有文本?

获得焦点时选择“只读”<input /> 中的所有文本

jquery js 当文本框获得焦点时,自动选中里面的文字

axure7.0如何实现光标在文本框中获得焦点时,文本框内容自动清空。失去焦点时显示默认文字,谢谢!

如何在焦点上选择textarea中的所有文本(在safari中)