IMEモードの切り替えをWindows 8以降の環境で行う方法

文書番号 : 40798     文書種別 : 使用方法     登録日 : 2017/07/05     最終更新日 : 2017/07/05
文書を印刷する
対象製品
InputMan for Windows Forms 10.0J
詳細
Windows 7以前のOSではIMEモードがスレッド単位で保持されていましたが、Windows 8以降のOSではユーザー単位で保持されるように仕様が変更されています。この変更によって、ImeModeプロパティによるIMEモードの切り替えが動作しない場合があります。

IMEの切り替えをWindows 8以降の環境で行うには、下記のいずれかの方法にて対応します。

・ImeModeプロパティの設定によってIMEモードを切り替える
ImeModeプロパティの設定によって、Windows 7以前のOSと同じようにIMEモードの切り替えを行うには、コントロールパネルの設定を変更してIMEモードをスレッド単位で保持するようにします。

・IMEコンポーネントのInputScopeプロパティを設定する
InputMan for Windows Forms 10.0Jは、Windows 8以降の環境でIMEモードをユーザー単位で保持した状態でもIMEモードを切り替える機能として、IMEコンポーネントのInputScopeプロパティを提供しています。InputScopeプロパティを設定することでWindows 7以前のOSと同じようにIMEモードを切り替えることが可能です。

[Visual Basic]
' GcTextBox1のIMEモードをひらがなに設定します。
GcIme1.SetInputScope(GcTextBox1, GrapeCity.Win.Editors.InputScopeNameValue.Hiragana)
[C#]
// gcTextBox1のIMEモードをひらがなに設定します。
gcIme1.SetInputScope(gcTextBox1, GrapeCity.Win.Editors.InputScopeNameValue.Hiragana);

ImeModeプロパティとInputScopeプロパティの両方が変更されているとき、通常はInputScopeプロパティの設定が優先されるため、ImeModeプロパティの設定を優先するにはInputScopeプロパティの値をDefaultに設定します。
ImeModeプロパティがDisableに設定されているときは、InputScopeプロパティの値がDefault以外の場合でもIMEモードが無効になる場合があります。InputScopeプロパティの設定を優先したい場合は、ImeModeプロパティをDisable以外に設定する必要があります。
なお、InputScope プロパティはWindows 8以降の環境でサポートされます。

また、InputScopeプロパティはタッチキーボードの表示に影響します。たとえばInputScopeプロパティでIMEモードを半角数字にしたとき、タッチキーボードを表示する数字キーボードが表示されます。

InputScopeプロパティの詳細や制限事項については、製品ヘルプやリリースノートの「制限事項と注意点」をご覧ください。