Лучшее событие для обработки здесь - KeyDown. KeyDown срабатывает, когда пользователь явно вводит текст в поле или другие компоненты имитируют ввод текста, отправляя сообщения на TextBox
. Это соответствует сценарию, который вы описали.
Если, с другой стороны, вы решите ответить на событие TextChanged, вы будете реагировать на каждый случай изменения текста (пользователем или кодом). Это означает, что ваше событие будет возбуждено, если я прямо скажу
someBox.Text = Environment.NewLine;