Как установить положение курсора текстового поля на клике - PullRequest
0 голосов
/ 28 января 2010

Мне нужно, чтобы текстовое поле было предварительно заполнено некоторым текстом, и я хочу, чтобы курсор по умолчанию находился в начале текстового поля, когда оно находится в фокусе.

private void txtBox_Enter(object sender, EventArgs e)
{
    if (this.txtBox.Text == "SOME PREFILL TEXT")
    {
        this.txtBox.Select(0, 0);
    }
}

Я фиксирую _Enter, как описано выше, и он действительно работает, если я вкладываю в текстовое поле, но если я щелкаю мышью в текстовом поле, курсор появляется там, где был выполнен щелчок мыши, указывая, что он обрабатывается после событие _Enter, эффективно «перезаписывающее» то, что я сделал. Чтобы бороться с этим, я подключил событие _Click для вызова также обработчика txtBox_Enter, но не повезло.

Есть ли способ обойти это?

Спасибо, -Бен

Ответы [ 2 ]

2 голосов
/ 28 января 2010

Чего вы пытаетесь достичь - изменение функциональности по умолчанию (например, щелчок, который обычно выбирает местоположение курсора) вызывает проблемы с пользовательским интерфейсом.

Возможно, что-то вроде SETCUEBANNER это то, что вы пытаетесь?

1 голос
/ 28 января 2010

Возможно, вы могли бы извлечь свой блок if для его собственного метода.

Затем вызовите это из txtBox_Enter (), а также из _Click или, если оно существует, _AfterClick ()

Вы также можете исследовать, используя события _Focus (), хотя я не уверен, куда они попадают в порядке событий.

...