C# TextChanged

Lightning bolt

TextChanged is an event. It occurs when the text is modified in a TextBox. With it we make a program dependent on the value of a TextBox when the user types. We can look up something in a database and display instantly the results.

Tip:Use TextChanged with logical tests to make your program responsive and reactive to your users' actions.

Start

Logo

First, there are two easy ways to make a TextChanged event, or any Windows Forms event, in Visual Studio. First we note the easiest way to use TextChanged events, and after that we demonstrate a manual way.

Event

Steps:To make a new TextChanged event, open Visual Studio—and follow these steps.

Click on the TextBox and focus it to see the correct designer UI. On the right bottom, you should see the Properties pane. Look for the lightning bolt icon in the pane. After you find the lightning bolt, click on it.

Steps

Then:Scroll down to where the word TextChanged appears. Double-click in the space next to the TextChanged label.

Add TextChanged

The other way to add TextChanged is to type the word "this.TextChanged +" into your form and then press tab twice. This is an alternative to the previous way, and its drawback is that it can clutter your C# file you are working with.

Press TAB twice after typing: C#

// This is the manual way, which is an alternative to the first way.
// Type 'this.TextChanged += ' into your form's constructor.
// Then press TAB twice, and you will have a new event handler.
this.TextChanged += new EventHandler(Form1_TextChanged);

Text

Find icon

Here we use TextChanged to automate changes in a program's UI. Let's say you want to show search results as the user types in a search box. Get the TextChanged event set up, and then we will use the Text property to show search results.

You can modify aspects of the program with TextChanged. All of this code is custom and the functions must be defined. You can see an example of what you can do when TextChanged is triggered.

Note:We use the new TextChanged Text value and call a custom function that manages more aspects of the interface.

Fragment that uses Text property in TextChanged: C#

void textBox1_TextChanged(object sender, EventArgs e)
{
    PopulateGrid(textBox1.Text);
}

void PopulateGrid(string queryStr)
{
    dataGridView1.DataSource = _journal.GetSearchResults(queryStr);
    SetStatus(dataGridView1.Rows.Count); // Change status bar (not shown)
}

Enabled

Property

You can have a method that will toggle the Enabled property of various buttons in the form, such as OK and Cancel, depending on whether any items were found. You can tie the Enabled property to an expression so it is always accurate.

Fragment that changes Enabled property on TextChanged: C#

void textBox1_TextChanged(object sender, EventArgs e)
{
    // Just something you may want to do after TextChanged.
    openButton.Enabled = TextIsValid(textBox1.Text);
}

Trigger

ABC: letters

TextChanged is triggered when the user types something into a TextBox, and the resulting value changes. It is also activated when the program itself changes the TextBox Text in code, and the resulting value is different.

Note:The runtime filters out modifications that don't result in a different Text value.

Programming tip

Synchronization. I recommend using TextChanged when you need to synchronize parts of the UI together with a Text value. The final code block in this article shows how to run more complex methods when the TextChanged event fires.

Note:For displaying instant search results from a database, this event is ideal. Programs are fast and responsive.

Summary

Framework: NET

We used the TextChanged event in Windows Forms. TextChanged is a powerful and convenient way to automate interactive messages in your application. Users appreciate it when they press a key and the program instantly responds.


C#: Windows