Как я могу контролировать свойство Winforms TextBox.SelectionStart для изменений? - PullRequest
2 голосов
/ 25 мая 2009

У меня есть многострочное текстовое поле, и я хотел бы отобразить номер текущей строки пользователя и номер столбца в метке под текстовым полем. Похоже, я могу получить номер строки и номер столбца, используя свойство SelectionStart, метод GetLineFromCharIndex и метод GetFirstCharIndexOfCurrentLine. Однако я не вижу ни одного события, которое запускается каждый раз, когда выбор изменяется в текстовом поле.

Лучшее, что я могу видеть, это отслеживать события KeyPress и MouseDown и проверять свойство SelectionStart после каждого события. Я полагаю, я мог бы использовать таймер для отслеживания изменений, но это странно.

Я что-то пропустил?

Ответы [ 2 ]

3 голосов
/ 26 мая 2009

Чтобы быть надежным, вам, вероятно, придется добавить таймер и просто проверять его регулярно; отсюда , элемент управления не публикует подходящие сообщения win32 (EN_SELCHANGE), чтобы сделать это как событие.

0 голосов
/ 25 июля 2011

Чтобы получить события SelectionChanged, вы также можете конвертировать ваш TextBox в RichTextBox. RichTextBoxes ведут себя немного иначе, чем TextBoxes, поэтому это не может быть идеальным решением, но, по крайней мере, есть событие SelectionChanged .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...