.NET 2.0 Windows Forms уже имеет это, и это просто MaskedTextBox.
Но чтобы обеспечить максимальную достоверность ввода, например адреса электронной почты, вы можете добавить проверку регулярного выражения (Regex) при изменении текста в MaskedTextBox.
Обновление:
Чтобы обеспечить дополнительную настройку, например, нескольких адресов электронной почты, вы также можете использовать MaskedTextBox в сочетании с RichTextBox, поскольку нет встроенной реализации Windows Forms точных функций управления вводом адресов электронной почты Outlook.
Я также сделал это, захватывая текущий курсор пользователя, когда элемент управления RichTextBox получил фокус, и затем непосредственно маскируя ввод, используя дополнительный MaskedTextBox, сгенерированный на лету во время выполнения, отображаемый поверх RichTextBox. Поэтому может быть несколько MaskedTextBox, когда адреса электронной почты введены более чем в один.
Я не говорю, что это простая задача, но это выполнимо.
Смотрите это:
Документация MSDN на MaskedTextBox