How to highlight the control when it gets focus?

c#, selectall, winforms

Solution

`sender` will be the target of the event.

You could cast `sender`:

MaskedTextBox maskedTextBox = sender as MaskedTextBox;
if (maskedTextBox != null) { maskedTextBox.SelectAll(); }

Or in C# 7,

if (sender is MaskedTextBox maskedTextBox) 
{
    maskedTextBox.SelectAll();
} 

Another improvement is to use `TextBoxBase` and it will work with `TextBox` and `RichTextBox` as well.

Problem

I can highlight the text in an individual MaskedTextBox when it gets focus using: ``` this.myTextBox.SelectAll(); ``` But, I want to do it for all MaskedTextBox when a mouse click event occurs. Instead of adding 30 individual event method for each MaskedTextbox, I want to select all MaskedTextBox and have one event method to take care of it, ie: ``` private void MouseClickedForMaskedTextBox(object sender, MouseEventArgs e) { this.ActiveControl.SelectAll(); } ``` But SelectAll is not available for this.ActiveControl. Is there a way to get around it?

Original source