C# 当文本框获得焦点时,如何选择文本框中的所有文本
在Windows phone中,当文本框具有焦点时,如何选择文本框中的所有文本 我尝试设置Textbox的get focus属性:C# 当文本框获得焦点时,如何选择文本框中的所有文本,c#,windows-phone-8.1,C#,Windows Phone 8.1,在Windows phone中,当文本框具有焦点时,如何选择文本框中的所有文本 我尝试设置Textbox的get focus属性: private void TextBox_GotFocus(object sender, RoutedEventArgs e) { TextBox textBox = (TextBox)sender; textBox .SelectAll(); } 我看到的是,我看到所有文本都被选中了1-2秒,然后它返回到
private void TextBox_GotFocus(object sender, RoutedEventArgs e)
{
TextBox textBox = (TextBox)sender;
textBox .SelectAll();
}
我看到的是,我看到所有文本都被选中了1-2秒,然后它返回到光标模式(即1条闪烁线)。您可以尝试此代码
private void TextBox_GotFocus(object sender, RoutedEventArgs e)
{
String sSelectedText = mytextbox.SelectedText;
}
若用户单击选择后出现的复制图标,它将被复制,若您希望以编程方式执行此操作,可以尝试此操作
DataPackage d = new DataPackage();
d.SetText(selectedText);
Clipboard.SetContent(d);
我建议在其他事件中进行复制,而不是gotfocus,因为这将在用户点击文本字段后立即触发,因此当没有实际输入文本时,将调用此方法。我在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(并使用适当的事件)。祝你好运 您正在选择要复制的文本或执行某种操作,或者您只想突出显示文本?我想选择文本框有焦点时复制的文本。我想选择所有要选择的文本,以便当用户按某个键时,例如b,所有文本都将消失,并替换为“b”。类似于WP中的键盘词典?因此,这是使用。。。UWP?谢谢。如果我只想选择所有的文本呢?(即以选定颜色作为背景的所有文本)当用户再次单击它时,它会返回到光标模式(即仅一个“|”)吗?
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();
}