入力時に押されたキーの大文字小文字を変更する必要があります。
キーを押すこと自体はOnKeyDown
で簡単にキャッチできますが、入力した文字を置き換えるためにテキスト内のカーソル位置を見つける方法は明らかではありません。
テキストがすでに変更されている場合、イベントOnTextChanged
の呼び出しが遅すぎます。
キャンセルできるTextInput
イベントをお試しください。 TextBoxまたはTextAreaのカーソル位置は、 TextBox.Selection
を使用して簡単に決定できます。
したがって、これがMaskedTextBox
の仕組みです。これは、テキストを希望どおりに翻訳するIMaskedTextProvider
を実装することで、探していることを実行するためのもう1つのオプションです。 VariableMaskedTextProvider
は、要件に合わせて調整できる基本実装に役立ちます。
`` `c#
クラスUpperCaseProvider:VariableMaskedTextProvider
{{
public override bool Insert(char文字、ref int位置)
{{
base.Insert(char.ToUpper(character)、ref position);を返します。
}
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());
お役に立てれば。
しましょう。
iOS
のTextInput
には制限があるとドキュメントに記載されているため、試しませんでした。
くそー。
これをComboBox
で使用しようとしていますが、 ControlObject
をEto.Wpf.Forms.Controls.EtoComboBox
にキャストできません( TextBox
にアクセスするため)。クロスプラットフォームの方法でそれを行う方法の問題。
うーん、ええ、 ComboBox
には、 TextBox
のように、すべてのテキストイベント/プロパティが含まれているわけではありません。 それらはおそらく追加されるべきです。
何らかの形のオートコンプリートを実行しようとしている場合、私にとってうまくいったことの1つは、TextBoxを使用して、正しい位置にフチなしのフォームを表示することです。 これにより、表示されるアイテムとその表示方法の柔軟性も高まります。 しかし、それは少し手間がかかることになります。
しましょう。 ありがとう。
ねえ@ LaraSQP 、ComboBoxのプロパティ/イベントの実装を追跡するためにこれを開いたままにしておきます。
あなたが正しいです。 申し訳ありません。