Задача: узнать текужее положение каретки текстбокса. Я сразу подумал о SelectionStart, но немного его поюзав заметил баг.
Создайте форму с текстбоксом, наишите код
- Код: Выделить всё
Private Sub TextBox1_KeyDown(ByVal sender As Object, ByVal e As Object) Handles TextBox1.KeyDown, TextBox1.MouseDown
Me.Text = TextBox1.SelectionStart
End Sub
введите какой-нибудь текст и следите за заголовком формы.
Дальше делаем так:
1) ставим каретку мышью перед текстом (в самое начало), видим 0
2) нажимаем кнопку "вправо", видим 0 (!)
3) нажимаем кнопку "вправо", видим 1
повторяем действие 3 и видим, что позиция увеличивается нормально
4) "дойдите" таким образом символа, при котором в заголовке будет 5
5) нажмите "налево", в заголовке 6 (!!!)
6) нажмите "налево" еще несколько раз, позиция уменьшается нормально
Вопрос: так и надо? Или есть более нормальные способы определения местоположения каретки?