PowerTools PlusPak for Windows Forms 8.0J
IME モードの切り替え

GcFontPickerコントロールでは、ImeModeプロパティまたはInputScopeプロパティを使用して、IME モードを設定することができます。ここでは、IME モードの設定について説明します。

IME モードについて

入力モード

GcFontPicker コントロールは、標準コントロールと同じ IME 入力モードをサポートしています。IME 入力モードの設定値は System.Windows.Forms.ImeMode と同じです。たとえば、次のモードを使用できます。
  • ひらがな
  • 全角カタカナ
  • 全角英数
  • 半角カタカナ
  • 半角英数
IME 入力モードは、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 モードをスレッド単位で保持するには、以下の手順で「アプリ ウィンドウごとに異なる入力方式を設定する」の設定を変更します。
  1. コントロールパネルを開き、「時計、言語、および地域」から「言語」-「詳細設定」をクリックします。
  2. 「入力方式の切り替え」グループの「アプリ ウィンドウごとに異なる入力方式を設定する」をオンにします。
  3. 「保存」ボタンをクリックして設定を有効にします。
なお、InputScope プロパティを使用することで上記の設定なしで 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 入力モードを設定します。
GcFontPicker1.InputScope = GrapeCity.Win.PlusPak.InputScopeNameValue.Hiragana
GcFontPicker1.InputScope = GrapeCity.Win.PlusPak.InputScopeNameValue.Hiragana;
  • InputScope プロパティはタッチ キーボードに影響します。たとえば InputScope プロパティで IME モードを全角英数にしたとき、タッチ キーボードを表示するとそのキーボード レイアウトが英数になります。
  • InputScope プロパティで全角カタカナ、半角カタカナおよび全角英数を使用するとき、タッチ キーボードにはこれらに対応するレイアウトが提供されないため、タッチ キーボードのレイアウトは切り替わりません。タッチキーボードからこれらの文字を入力する場合には変換候補から選択して入力します。
  • InputScope プロパティの動作は Text Services Framework の SetInputScope 関数に依存しています。
参照