The TextChanged event of a TextBox fires when doing a postback in ASP.NET. So when you type something in the textbox, it won't fire before you change the focus or do something else that causes a postback to the server.
To solve this, I found a piece of code that adds a Javascript to the HTML control's OnKeyUp event. This Javascript causes a PostBack, so that your event fires each time you type something in your textbox.
Code:
string js = "javascript:" + ClientScript.GetPostBackEventReference(TextBox1, "@@@@@buttonPostBack") + ";" ;
TextBox1.Attributes.Add("onkeyup", js);