作成日: 2023/06/21 最終更新日: 2023/06/21
文書種別
制限事項
詳細
テキスト(GcTextBox)コントロールのKeyPressイベントでe.KeyCharを参照しているとき、複数の日本語を入力し、Enterキーを押してIMEの変換を確定すると、KeyPressイベントが1度だけ発生し、e.KeyCharでは最初に入力した文字が取得されます。
KeyPressイベントが入力した文字数分発生し、e.KeyCharですべての入力文字が取得されません。
例えば、以下のようなコードと手順、結果になります。
KeyPressイベントが入力した文字数分発生し、e.KeyCharですべての入力文字が取得されません。
例えば、以下のようなコードと手順、結果になります。
◎サンプルコード(VB)
Dim f2 As New Form2()
f2.TopLevel = False
Me.Controls.Add(f2)
f2.Show()
- GcTextBoxに「あ」と「い」を続けて入力します。
- Enterキーを押してIMEの変換を確定します。
結果:KeyPressイベントが一度だけ発生してe.KeyCharで「あ」だけが取得されます。
この動作は製品の制限事項となります。
IMEで複数の文字を入力する場合、Windowsのメッセージキューは「WM_CHAR」の連続となり、製品でこれを受け取ったとき、それが文字全体なのか、あるいは絵文字の一部なのかといったことを正確に区別することができません。そのため、製品では、連続するWM_CHARメッセージをキャプチャし、これらのメッセージを一度に処理するようにしています。