Eto: Добавьте текстовые свойства и события в ComboBox

Созданный на 19 мая 2020  ·  7Комментарии  ·  Источник: picoe/Eto

Мне нужно изменить регистр нажатой клавиши при ее вводе.

Само нажатие клавиши легко поймать с помощью OnKeyDown , но неясно, как найти позицию курсора в тексте, чтобы заменить набранный символ.

Событие OnTextChanged вызывается слишком поздно, когда текст уже изменен.

Все 7 Комментарий

Попробуйте событие TextInput , которое вы можете отменить. Положение курсора TextBox или TextArea можно легко определить с помощью TextBox.Selection .

Следовательно, именно так работает MaskedTextBox , что является еще одним вариантом сделать то, что вы ищете, реализуя IMaskedTextProvider , который переводит текст так, как вы хотите. VariableMaskedTextProvider помогает с базовой реализацией, которую вы можете настроить в соответствии со своими требованиями:

```С#
класс UpperCaseProvider : VariableMaskedTextProvider
{
public override bool Insert (символ char, ref int position)
{
вернуть base.Insert (char.ToUpper (символ), позиция ссылки);
}

public override bool Replace(char character, ref int position)
{
    base.Replace(char.ToUpper(character), ref position);
}

}

Then to use it:
```c#
new MaskedTextBox(new UpperCaseProvider());

Надеюсь это поможет.

Сделаю.

Я не пробовал, потому что в документации сказано, что существуют ограничения на TextInput в iOS .

Слей это.

Я пытаюсь использовать это в ComboBox , но я не могу привести ControlObject к Eto.Wpf.Forms.Controls.EtoComboBox (чтобы получить доступ к его TextBox ), что, в любом случае, умоляет вопрос, как это сделать кроссплатформенным образом.

Хм, да, у ComboBox нет всех текстовых событий/свойств, как у TextBox . Вероятно, их следует добавить.

Если вы пытаетесь использовать какую-либо форму автозаполнения, мне помогло использование TextBox и отображение формы без полей в правильном положении. Это также дает вам больше гибкости в отображаемых элементах и ​​​​в том, как они отображаются. Тем не менее, это в конечном итоге немного работы.

Сделаю. Спасибо.

Привет @LaraSQP , я оставляю это открытым, чтобы отслеживать реализацию свойств/событий для ComboBox.

Ты прав. Извини за это.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги