Как вы автоматически выделяете текст в элементе управления текстовым полем, когда элемент управления получает фокус.Автоматическое выделение текста в элементе управления текстовым полем
ответ
В Windows Forms и WPF:
textbox.SelectionStart = 0;
textbox.SelectionLength = textbox.Text.Length;
В asp.net:
textBox.Attributes.Add("onfocus","this.select();");
Если вам нужно сделать, это для большого количества текстовых (в Silverlight или WPF), то может использовать технику, используемую в сообщении блога: http://dnchannel.blogspot.com/2010/01/silverlight-3-auto-select-text-in.html. Он использует Attached Properties и Routed Events.
Если вы хотите сделать это для всего приложения WPF вы можете сделать следующее: - В файле App.xaml.cs
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();
}
Работает на табуляцию в TextBox. Не работает так хорошо, чтобы щелкнуть в одном. Если вы нажмете на текст, он быстро подсвечивается, а затем не подсвечивается перед отображением, как и следовало ожидать, с помощью курсора в месте щелчка. – denver
Вот код, который я использую. Он требует добавления прикрепленного свойства к каждому текстовому полю, которое вы хотите выбрать. Увидев, что я не хочу, чтобы все текстовые поля в моем приложении выполняли это, это было лучшим решением для меня.
public class AutoSelectAll
{
public static bool GetIsEnabled(DependencyObject obj)
{
return (bool)obj.GetValue(IsEnabledProperty);
}
public static void SetIsEnabled(DependencyObject obj, bool value)
{
obj.SetValue(IsEnabledProperty, value);
}
static void ue_Loaded(object sender, RoutedEventArgs e)
{
var ue = sender as FrameworkElement;
if (ue == null)
return;
ue.GotFocus += ue_GotFocus;
ue.GotMouseCapture += ue_GotMouseCapture;
}
private static void ue_Unloaded(object sender, RoutedEventArgs e)
{
var ue = sender as FrameworkElement;
if (ue == null)
return;
//ue.Unloaded -= ue_Unloaded;
ue.GotFocus -= ue_GotFocus;
ue.GotMouseCapture -= ue_GotMouseCapture;
}
static void ue_GotFocus(object sender, RoutedEventArgs e)
{
if (sender is TextBox)
{
(sender as TextBox).SelectAll();
}
e.Handled = true;
}
static void ue_GotMouseCapture(object sender, MouseEventArgs e)
{
if (sender is TextBox)
{
(sender as TextBox).SelectAll();
}
e.Handled = true;
}
public static readonly DependencyProperty IsEnabledProperty = DependencyProperty.RegisterAttached("IsEnabled", typeof(bool),
typeof(AutoSelectAll), new UIPropertyMetadata(false, IsEnabledChanged));
static void IsEnabledChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
var ue = d as FrameworkElement;
if (ue == null)
return;
if ((bool)e.NewValue)
{
ue.Unloaded += ue_Unloaded;
ue.Loaded += ue_Loaded;
}
}
}
Основное изменение, которое я сделал здесь, заключалось в добавлении загруженного события ко многим из примеров, которые я видел. Это позволяет продолжить работу кода после его выгрузки (т. Е. Изменяется вкладка). Также я включил код, чтобы убедиться, что текст будет выбран, если вы нажмете на текстовое поле с помощью мыши, а не только на клавиатуру. Примечание. Если вы на самом деле нажимаете текст в текстовом поле, курсор вставлен между буквами, как следует.
Вы можете использовать это, указав следующий тег в свой xaml.
<TextBox
Text="{Binding Property}"
Library:AutoSelectAll.IsEnabled="True" />
Если ваше намерение получить текст в текстовом поле выделены на мыши вы можете сделать это просто, добавив:
this.textBox1.Click += new System.EventHandler(textBox1_Click);
в:
partial class Form1
{
private void InitializeComponent()
{
}
}
где textBox1 является имя соответствующего текстового поля, расположенного в Form1
А затем создайте определение метода:
void textBox1_Click(object sender, System.EventArgs e)
{
textBox1.SelectAll();
}
в:
public partial class Form1 : Form
{
}
Я думаю, что самый простой способ использует TextBox.SelectAll
как в Введите событие:
private void TextBox_Enter(object sender, EventArgs e)
{
((TextBox)sender).SelectAll();
}
О событиях "Enter" (например: нажмите клавишу Tab) или «Первый щелчок» будет выбран весь текст. Dotnet 4,0
public static class TbHelper
{
// Method for use
public static void SelectAllTextOnEnter(TextBox Tb)
{
Tb.Enter += new EventHandler(Tb_Enter);
Tb.Click += new EventHandler(Tb_Click);
}
private static TextBox LastTb;
private static void Tb_Enter(object sender, EventArgs e)
{
var Tb = (TextBox)sender;
Tb.SelectAll();
LastTb = Tb;
}
private static void Tb_Click(object sender, EventArgs e)
{
var Tb = (TextBox)sender;
if (LastTb == Tb)
{
Tb.SelectAll();
LastTb = null;
}
}
}
Я не знаю, почему никто не упомянул, что, но вы также можете сделать это, это работает для меня
textbox.Select(0, textbox.Text.Length)
Вы можете использовать это, содержательный.: D
TextBox1.Focus();
TextBox1.Select(0, TextBox1.Text.Length);
Это очень легко достичь с помощью встроенного в методе SelectAll
Просто Коу можно записать следующим образом:
txtTextBox.Focus();
txtTextBox.SelectAll();
И все в TextBox будет выбран :)
textbox.Focus();
textbox.SelectionStart = 0;
textbox.SelectionLength = textbox.Text.Length;
Хотя этот код может ответить на вопрос, предоставление дополнительного контекста относительно того, как и/или почему оно решает проблему, улучшит долгосрочную ценность ответа. Прочтите этот https://stackoverflow.com/help/how-to-answer –
textBoxX1.Focus();
this.ActiveControl = textBoxX1;
textBoxX1.SelectAll();
- 1. Текстовый отступ в элементе управления текстовым полем
- 2. Изменение текста управления текстовым полем окна
- 3. Выделение текста в элементе управления .net Webbrowser
- 4. Автоматическое управление текстовым полем по вертикали
- 5. Работа с текстовым полем в элементе управления Gridview в asp.net?
- 6. пользовательское управление с текстовым полем
- 7. Установить значение для управления текстовым полем
- 8. Как использовать SetFocus для управления текстовым полем?
- 9. Печатать строку с разноцветными символами в элементе управления списком/текстовым полем
- 10. Не удалось обновить значения управления текстовым полем
- 11. Управление текстовым полем элемента управления WPat datagrid
- 12. Ярлык за текстовым полем
- 13. Удалить выделение из инициализированного текста (Снять выделение) в элементе управления CEdit
- 14. Позиция курсора в управлении текстовым полем xaml
- 15. Управление текстовым полем Silverlight Rich
- 16. Установить фокус на элементе управления текстовым полем в UserControl в wpf
- 17. Лучший способ отслеживать положение события backspace, запущенного в элементе управления текстовым полем в javascript
- 18. Невозможно установить значение для управления текстовым полем программно в WebBrowser
- 19. Управление текстовым полем в приложении Windows C#?
- 20. Получение шведских символов из элемента управления текстовым полем
- 21. Удаление форматирования из элементов управления текстовым полем - InfoPath
- 22. Как сохранить имя пользователя LoginName Control из LoginView в элементе управления текстовым полем
- 23. Как я могу отображать записи нулевого значения в элементе управления текстовым полем?
- 24. Проблема с текстовым вводом в управлении текстовым полем
- 25. Связывание данных между полем со списком и текстовым полем
- 26. Silverlight UserControl с текстовым полем
- 27. Autocomplete с текстовым полем
- 28. ASP.NET: checkboxlist с текстовым полем?
- 29. Как получить идентификатор управления текстовым полем gridview в javascript?
- 30. Lightswitch Получить текст управления текстовым полем в буфер обмена
http://msdn.microsoft.com/en-u s/library/hk09zy8f.aspx –