IMEの設定

C#, ITVisualStudio, Windowsフォーム

IMEの設定方法

これより下で詳細を解説していきます。

ImeMode.NoControl

IMEに何も設定しない場合に使用する。
デフォルトだとこの設定になります。
ImeMode.NoControlを設定しているコントロールにフォーカスが移動した場合、
移動前の設定がそのまま使用されます。

ImeMode.Off

IME入力モードをオフにします。
ImeMode.Offを設定しているコントロールにフォーカスが移動した場合、
英語入力モードと同じ動きをします。

ImeMode.On

IME入力モードをオンにします。
オンにすることで日本語固有の文字を入力可になります。
ImeMode.Onを設定しているコントロールにフォーカスが移動した場合、
日本語入力モードになります。

ImeMode.Katakana

IME入力モードを全角カタカナにします。
ImeMode.Katakanaを設定しているコントロールにフォーカスが移動した場合、
全角カタカナ入力モードになります。

ImeMode.KatakanaHalf

IME入力モードを半角カタカナにします。
ImeMode.KatakanaHalfを設定しているコントロールにフォーカスが移動した場合、
半角カタカナ入力モードになります。

ImeMode.Hiragana

IME入力モードをひらがなにします。
ImeMode.Hiraganaを設定しているコントロールにフォーカスが移動した場合、
ひらがな入力モードになります。

ImeMode.Disable

IME入力モードを無効にします。
ImeMode.Disableを設定しているコントロールにフォーカスが移動した場合、
ユーザーはIME設定を変更することが出来なくなります。

ImeMode.AlphaFull

IME入力モードを全角英数にします。
ImeMode.AlphaFullを設定しているコントロールにフォーカスが移動した場合、
全角英数入力モードになります。

ImeMode.Alpha

IME入力モードを半角英数にします。
ImeMode.Alphaを設定しているコントロールにフォーカスが移動した場合、
半角英数入力モードになります。

Windows8以降の挙動

Windows8以降ではIME設定がユーザーごとに設定される?ため、
ImeMode.Katakana
ImeMode.KatakanaHalf
ImeMode.Alpha
ImeMode.AlphaFull
がうまく動作しません。

上記の赤丸部分にチェックを入れ、アプリごとにIMEを設定するようにしてやる必要があるらしいです。

ImeMode.Alphaを動作させたいだけならImeMode.Offを代わりに使用するのもありです。

まとめ

最近はWindows8以降のPCも多いので、
思わぬ挙動に混乱することがあります。
お客様のPCがWindows10で、
僕が使っていた開発用PCがWindows7だったため、
中々原因が分からず苦労しました。

C#, ITVisualStudio, Windowsフォーム

Posted by raishin