『Visual C#実践講座』2章 その11 IMEの制御
コントロールのImeModeプロパティを指定することでIMEを制御できる
Control.ImeMode プロパティ (System.Windows.Forms)
http://msdn.microsoft.com/ja-jp/library/system.windows.forms.control.imemode(VS.80).aspx
ImeMode プロパティは、通常、数値入力専用の TextBox コントロールに対しては ImeMode.Off に設定されます。ImeMode プロパティ値は、Form クラスの ImeMode.NoControl に設定されます。
IME を直接サポートしない、つまり IME から直接入力できないほとんどクラスは、このプロパティの値を NoControl に設定します。
ImeMode 列挙体 (System.Windows.Forms)
http://msdn.microsoft.com/ja-jp/library/system.windows.forms.imemode(VS.80).aspx
オブジェクトが選択されている場合に、そのオブジェクトの IME (Input Method Editor) のステータスを決定する値を指定します。
メンバ名 説明 Alpha 1 バイトの英数字 (SBC)。この設定は、韓国語と日本語の IME に対してだけ有効です。 AlphaFull 2 バイトの英数字。この設定は、韓国語と日本語の IME に対してだけ有効です。 Close Disable IME が無効になっています。この設定では、ユーザーはキーボードを使用して IME を有効にすることができず、IME のフローティング ウィンドウは非表示になります。 Hiragana ひらがな DBC。この設定は、日本語 IME に対してだけ有効です。 Inherit 親コントロールの IME モードを継承します。 Katakana カタカナ DBC。この設定は、日本語 IME に対してだけ有効です。 KatakanaHalf カタカナ SBC。この設定は、日本語 IME に対してだけ有効です。 NoControl なし (既定)。 Off IME がオフです。このモードは、IME がオフであることを示します。つまり、オブジェクトの動作は英語入力モードと同様になります。この設定は、日本語、簡体字中国語、および繁体字中国語の IME に対してだけ有効です。 On IME がオンです。この値は、IME がオンであることを示し、中国語または日本語に固有の文字を入力できることを示します。この設定は、日本語、簡体字中国語、および繁体字中国語の IME に対してだけ有効です。
しかし、「入力中に変換を確定する」といった高度なIMEの制御をするには、ImeModeプロパティでは無理。
Windows APIを使う必要がある。Imm32.dllの
ImmGetContext, ImmReleaseContext, ImmSetConversionStatus, ImmGetOpenStatus, ImmSetOpenStatus
を使う。