※当サイトはアフィリエイト広告を利用しています

WindowsフォームのオブジェクトのIMEの設定

2022年4月12日ITVisualStudio,Windowsフォーム

Windowsフォームにて、
オブジェクトが選択されている場合に、そのオブジェクトのIMEのステータスを設定する方法を解説します。

オブジェクトのIMEの設定方法:コード

//IME設定なし
textBox1.ImeMode = ImeMode.NoControl;
//IMEをオフに
textBox2.ImeMode = ImeMode.Off;
//IMEをオンに
textBox3.ImeMode = ImeMode.On;
//IMEをカタカナに
textBox4.ImeMode = ImeMode.Katakana;
//IMEを半角カタカナに
textBox5.ImeMode = ImeMode.KatakanaHalf;
//IMEをひらがなに
textBox6.ImeMode = ImeMode.Hiragana;
//IMEを無効に
textBox7.ImeMode = ImeMode.Disable;
//IMEを全角英数字
textBox8.ImeMode = ImeMode.AlphaFull;
//IMEを半角英数字
textBox9.ImeMode = ImeMode.Alpha;

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

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だったため、
中々原因が分からず苦労しました。

Windowsフォーム関連記事

2022年4月12日ITVisualStudio,Windowsフォーム

Posted by raishin