C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 14 を表示中)
■4905 / )  日本語変換確定時のTextChangedイベントについて
□投稿者/ M.K (24回)-(2007/06/28(Thu) 14:14:55)

分類:[C# (Windows)] 

開発環境:WinXP SP2, VS2005(C#), .NET 2.0

いつもお世話になっております、M.Kと申します。

現在 TextBox を継承したカスタムコントロールを作成しており、そのコントロールの
TextChanged イベントにて、その時点で入力されているテキストを基に処理を行う様な
事を考えております。

そのコントロール(以降 TextBox とします)にIMEがOffの状態で文字が入力される場合
は問題無いのですが、IMEがOnの状態で入力文字が確定された場合にこちらが望む様な
動作をしてくれず困っております。

例えば TextBox の TextChanged イベントに以下の様なコードを記述した際に、IMEに
よって"あいうえお"と入力された文字が確定されると「あ」「あい」「あいう」「あい
うえ」「あいうえお」と合計5回も TextChanged イベントが発生してしまいます。


  private void textBox1_TextChanged(object sender, EventArgs e)
  {
      System.Diagnostics.Debug.WriteLine(textBox1.Text);
  }


これを「あいうえお」の1回だけで済ませたいのですが、何か良い方法は無いでしょうか?

IMM系のAPIやメッセージを使って出来るかなと思い、ImmGetCompositionString や
ImmNotifyIME を使ってみているのですが、確定直後の「あいうえお」を取得する事は
できても、5回発生する TextChanged イベントの制御はできていない状態です。

以上 宜しくお願い致します。

返信 編集キー/


管理者用

- Child Tree -