IME モードについて
入力モード
GcFontPicker コントロールは、標準コントロールと同じ IME 入力モードをサポートしています。IME 入力モードの設定値は System.Windows.Forms.ImeMode と同じです。たとえば、次のモードを使用できます。- ひらがな
- 全角カタカナ
- 全角英数
- 半角カタカナ
- 半角英数
GcFontPicker1.ImeMode = System.Windows.Forms.ImeMode.Hiragana
GcFontPicker1.ImeMode = System.Windows.Forms.ImeMode.Hiragana;
IME モードとInputScope プロパティ
Windows 7 以前の OS では IME モードがスレッド単位で保持されていましたが、Windows 8 以降ではユーザー単位で保持されるように仕様が変更されています。この変更によって、ImeMode プロパティによる IME モードの切り替えが動作しない場合があります。
Windows 8 以降の環境において、Windows 7 以前の OS と同じように IME モードをスレッド単位で保持するには、以下の手順で「アプリ ウィンドウごとに異なる入力方式を設定する」の設定を変更します。
Windows 8 以降の環境において、Windows 7 以前の OS と同じように IME モードをスレッド単位で保持するには、以下の手順で「アプリ ウィンドウごとに異なる入力方式を設定する」の設定を変更します。
- コントロールパネルを開き、「時計、言語、および地域」から「言語」-「詳細設定」をクリックします。
- 「入力方式の切り替え」グループの「アプリ ウィンドウごとに異なる入力方式を設定する」をオンにします。
- 「保存」ボタンをクリックして設定を有効にします。
InputScope プロパティの使い方
InputScopeプロパティを使用すると、Windows 8 以降の環境でも、Windows 7 以前の OS と同じように IME モードを制御することができます。
GcFontPickerコントロールにおけるInputScope プロパティと ImeMode プロパティの挙動の差異は現在のところ確認されていませんが、InputScope プロパティの動作は Text Services Framework の SetInputScope 関数に依存した動作となり、ImeMode プロパティとは異なる内部構造で動作するプロパティとなるため、Windows 8 以降の OS において IME モードを Windows 7 以前の動作と全く同じ挙動にしたい場合は、上記 OS の設定値(「アプリ ウィンドウごとに異なる入力方式を設定する」)を変更することを推奨します。
ただし、ImeMode プロパティと InputScope プロパティの両方が変更されている場合、通常は InputScope プロパティの設定が優先されます。ImeMode プロパティの設定を優先したい場合は、InputScope プロパティを Default に設定する必要があります。
なお、ImeMode プロパティが Disable に設定されているときは、InputScope プロパティの値が Default 以外の場合でも IME モードが無効になる場合があります。InputScope プロパティの設定を優先したい場合は、ImeMode プロパティを Disable 以外に設定する必要があります。
次のコードでは、InputScope プロパティを使用して、セルのIME 入力モードを設定します。
GcFontPickerコントロールにおけるInputScope プロパティと ImeMode プロパティの挙動の差異は現在のところ確認されていませんが、InputScope プロパティの動作は Text Services Framework の SetInputScope 関数に依存した動作となり、ImeMode プロパティとは異なる内部構造で動作するプロパティとなるため、Windows 8 以降の OS において IME モードを Windows 7 以前の動作と全く同じ挙動にしたい場合は、上記 OS の設定値(「アプリ ウィンドウごとに異なる入力方式を設定する」)を変更することを推奨します。
ただし、ImeMode プロパティと InputScope プロパティの両方が変更されている場合、通常は InputScope プロパティの設定が優先されます。ImeMode プロパティの設定を優先したい場合は、InputScope プロパティを Default に設定する必要があります。
なお、ImeMode プロパティが Disable に設定されているときは、InputScope プロパティの値が Default 以外の場合でも IME モードが無効になる場合があります。InputScope プロパティの設定を優先したい場合は、ImeMode プロパティを Disable 以外に設定する必要があります。
次のコードでは、InputScope プロパティを使用して、セルのIME 入力モードを設定します。
GcFontPicker1.InputScope = GrapeCity.Win.PlusPak.InputScopeNameValue.Hiragana
GcFontPicker1.InputScope = GrapeCity.Win.PlusPak.InputScopeNameValue.Hiragana;
|