Перестановка позиции курсора в RichTextBox
Долго думал, как же сделать так, чтобы при клике правой кнопкой мыши переставлялся курсор. перепробовал кучу методов, включая и методы WinAPI mouse_event и SendInput - все тщетно. Озарение пришло внезапно (как это, впрочем, бывает всегда) - а что если попробовать определять позицию слова по позиции мыши? Как оказалось, этот метод срабатывает. Вот такой код:
int pos = rtb.GetCharIndexFromPosition(e.Location);
rtb.SelectionStart = pos;
rtb.SelectionLength = 0;
работает как часы: после клика правой кнопкой курсор переставляется в нужную позицию и мы можем делать со словом, на котором стоит курсор все, что нужно. Вот такой простой подход. Если у кого-то была такая же проблема, можете сравнить свое решение с моим. Может быть, ваше решение лучше?



05.08.2008 в 14:08
У меня именно так и работает. Только я SelectionLength = 0 не делаю.