Make TextBoxes select all text on focus.
This commit is contained in:
parent
9068dde1c3
commit
ad7ea1457c
@ -27,6 +27,10 @@ using Microsoft.Office.Tools.Word;
|
||||
using Bovender.Versioning;
|
||||
using Bovender.Mvvm.Messaging;
|
||||
using zaaReloaded2.ExceptionHandler;
|
||||
using System.Windows;
|
||||
using System.Windows.Input;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Media;
|
||||
|
||||
namespace zaaReloaded2
|
||||
{
|
||||
@ -48,6 +52,7 @@ namespace zaaReloaded2
|
||||
private void ThisAddIn_Startup(object sender, System.EventArgs e)
|
||||
{
|
||||
Bovender.ExceptionHandler.CentralHandler.ManageExceptionCallback += CentralHandler_ManageExceptionCallback;
|
||||
RegisterTextBoxSelectAll();
|
||||
CheckForUpdates();
|
||||
_oldCaption = Globals.ThisAddIn.Application.Caption;
|
||||
Globals.ThisAddIn.Application.Caption =
|
||||
@ -156,5 +161,43 @@ namespace zaaReloaded2
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
void RegisterTextBoxSelectAll()
|
||||
{
|
||||
// Select the text in a TextBox when it receives focus.
|
||||
EventManager.RegisterClassHandler(typeof(TextBox), TextBox.PreviewMouseLeftButtonDownEvent,
|
||||
new MouseButtonEventHandler(SelectivelyIgnoreMouseButton));
|
||||
EventManager.RegisterClassHandler(typeof(TextBox), TextBox.GotKeyboardFocusEvent,
|
||||
new RoutedEventHandler(SelectAllText));
|
||||
EventManager.RegisterClassHandler(typeof(TextBox), TextBox.MouseDoubleClickEvent,
|
||||
new RoutedEventHandler(SelectAllText));
|
||||
}
|
||||
|
||||
void SelectivelyIgnoreMouseButton(object sender, MouseButtonEventArgs e)
|
||||
{
|
||||
// Find the TextBox
|
||||
DependencyObject parent = e.OriginalSource as UIElement;
|
||||
while (parent != null && !(parent is TextBox))
|
||||
parent = VisualTreeHelper.GetParent(parent);
|
||||
|
||||
if (parent != null)
|
||||
{
|
||||
var textBox = (TextBox)parent;
|
||||
if (!textBox.IsKeyboardFocusWithin)
|
||||
{
|
||||
// If the text box is not yet focused, give it the focus and
|
||||
// stop further processing of this click event.
|
||||
textBox.Focus();
|
||||
e.Handled = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void SelectAllText(object sender, RoutedEventArgs e)
|
||||
{
|
||||
var textBox = e.OriginalSource as TextBox;
|
||||
if (textBox != null)
|
||||
textBox.SelectAll();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user