Identify which textbox has fired a text changed event

10,539

Solution 1

The sender parameter contains which control has fired the event. You can cast it to a TextBox and get the name property from it:

string propertyName = ((TextBox)sender).Name;

Solution 2

Cast object sender(your textbox which fired event) to TextBox.

If only one property is what you want then write

string propertyName = ((TextBox)sender).Name; 

But when more than one property is required, then it is better to create a Textbox variable and use it like.

TextBox txtbox =  (TextBox)sender;

Then you can use any property of it like

string propertyName = txtbox.Name; 

MessageBox.Show(proptertyName);
MessageBox.Show(txtbox.Content.ToString());
Share:
10,539
user589195
Author by

user589195

Updated on June 04, 2022

Comments

  • user589195
    user589195 almost 2 years

    I have a number of text boxes that are dynamically created via code.

    I would like to be able to assign a generic event handler to all the textboxes for the text changed even and then within the handler determine which text box has fired the event.

    Code I have is:

    txtStringProperty.TextChanged += TextBoxValueChanged;
    
    private void TextBoxValueChanged(object sender, RoutedEventArgs e)
    {
        string propertyName = // I would like the name attribute of the textbox here
    }
    

    Please let me know if you require anymore information.