Question: In a TextBox I'm monitoring the text changes. I need to check the text before doing some stuff. But I can only check the old text in the moment. How can I get the new Text ?

```
private void textChanged(object sender, EventArgs e)
{
    // need to check the new text
}

```

I know .NET Framework 4.5 has the new `TextChangedEventArgs` class but I have to use .NET Framework 2.0.

Answer: 
**Getting the NEW value**

You can just use the `Text` property of the `TextBox`. If this event is used for multiple text boxes then you will want to use the `sender` parameter to get the correct `TextBox` control, like so...

```
private void textChanged(object sender, EventArgs e)
{
    TextBox textBox = sender as TextBox;
    if(textBox != null)
    {
        string theText = textBox.Text;
    }
}

```

---

**Getting the OLD value**

For those looking to get the old value, you will need to keep track of that yourself. I would suggest a simple variable that starts out as empty, and changes at the end of each event:

```
string oldValue = "";
private void textChanged(object sender, EventArgs e)
{
    TextBox textBox = sender as TextBox;
    if(textBox != null)
    {
        string theText = textBox.Text;

        // Do something with OLD value here.

        // Finally, update the old value ready for next time.
        oldValue = theText;
    }
}

```

You could create your own TextBox control that inherits from the built-in one, and adds this additional functionality, if you plan to use this a lot.
Have a look at the [textbox events](http://msdn.microsoft.com/en-us/library/system.windows.forms.textbox_events.aspx) such as [KeyUp](http://msdn.microsoft.com/en-us/library/system.windows.forms.control.keyup%28v=vs.80%29.aspx), KeyPress etc. For example:

```
private void textbox_KeyUp(object sender, KeyEventArgs e)
{
    // Do whatever you need.
}

```

Maybe these can help you achieve what you're looking for.