У меня есть список с предыдущими записями моего TextBox. Используя KeyUp/KeyDown Я могу просмотреть этот список, отображающий текст в TextBox.TextBox Установить курсор в конце после KeyUp или KeyDown
Установка другой строки в TextBox редактирования курсора должен быть в конце строки в Te выделенного текста xtBox. myTextBox.Select (RTextBox.Text.Length, 0); здесь очень полезен, но после KeyUp это устанавливает курсор не в конце текста, это один символ раньше. После KeyDown его в конце, правильно. Я думаю, согласно объявлению preview текущий символ еще не вычисляется, но даже добавление +1 к длине не работает.
private void MyTextBox_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e)
{
switch (e.KeyValue)
{
case (char)Keys.Up:
myTextBox.Text = GetNewText();
myTextBox.Select(myTextBox.Text.Length, 0);
break;
case (char)Keys.Down:
myTextBox.Text = GetNewText();
myTextBox.Select(myTextBox.Text.Length, 0);
break;
}
}
private void MyTextBox_KeyPress(object sender, KeyPressEventArgs e)
{
switch (e.KeyChar)
{
case (char)Keys.Up:
// I'd guess setting the cursor here would be perfect
// but KeyUp/KeyDown can't be caught here, unfortunately
myTextBox.Select(RTextBox.Text.Length, 0);
break;
}
}
Так что я думаю, что я должен установить cursore после PreviewKeyDown -Event но в случае KeyUp/KeyDown Я не знаю, если это вообще возможно.
Любое другое событие, в котором я должен установить курсор?
Редактировать: Я использую WinForms.
_PreviewKeyDownEventArgs_ не имеет возможностей для _e.Handled_ – Sundancer
Ой извините, я думал, что вы используете WPF. Используете ли вы Windows Forms? –
Я обновил свой ответ: тогда вам нужно использовать событие KeyDown. –