C# Windows Form

How to Create a TextBox That Accepts Only Letters and Space with C#

In this tutorial, we will walk you through the process of creating a TextBox control in a C# Windows Forms application that only accepts letters (A-Z and a-z). This can be useful for scenarios where you want to restrict user input to alphabetic characters, such as when collecting names or other text data that should not contain numbers or special symbols.

We will break down the process into step-by-step instructions, and by the end of this tutorial, you will have a functional TextBox that filters out any characters other than letters.

Step 1: Create a New Windows Forms Project

Start by creating a new Windows Forms project in C# using your preferred integrated development environment (IDE) such as Visual Studio or Visual Studio Code. Name your project and select the appropriate location for it.

Step 2: Add a TextBox Control to the Form

Open the main form in the designer and drag and drop a TextBox control from the toolbox onto the form.

Step 3: Handle the KeyPress Event

To restrict input to only letters, you will need to handle the KeyPress event of the TextBox control. Double-click on the TextBox control in the designer to create an event handler for it. This will generate a method in your code-behind file that handles the KeyPress event.

C# Code:

Now, let’s break down what this code accomplishes:

  • The textBox1_KeyPress event handler is triggered every time a key is pressed within textBox1, which is our TextBox control.
  • Inside the event handler, we use the Regex.IsMatch method to evaluate whether the entered character (represented by e.KeyChar) matches a specific regular expression pattern.
  • The regular expression pattern ^[a-zA-Z\s\b] is designed to permit only letters (both lowercase and uppercase) and space characters (for separating words) in the input. The \b is a word boundary, ensuring that input such as “123abc” is blocked, as it contains non-letter characters.
  • If the condition in the if statement is met, indicating that the character is a letter or a space, we set e.Handled to false. This allows the character to be added to the TextBox.
  • Conversely, if the condition is not met (i.e., the character is not a letter or space), we set e.Handled to true. This effectively denies the character from being entered into the TextBox.

Conclusion:

By leveraging regular expressions, we have implemented a more sophisticated TextBox input validation mechanism. It now allows only letters and spaces while blocking other characters, providing enhanced control over user input. This approach is beneficial for scenarios where data must adhere to specific formatting or content requirements, such as names or addresses. Regular expressions offer a powerful tool for managing complex input validation in C# applications.

Leave a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.