『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
を使う。