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 cha
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;
My advice is to look at the base class hierarchy at MSDN and just cast the control to it and extract the properties defined on it:
var name = ((ContentControl) sender).Name;
this is also a good practice for a more generic implementation because casting it to 'TextBox' means you can apply the handling logic to that type of control only.
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());