重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

OS  :WindowsXP Pro SP1
開発環境:VisualStudio .NET 2003
開発言語:C#
開発形態:Windowsアプリケーション

いつもこの場にお世話になっております。
今回もよろしくお願い致します。

現在、Windowsアプリケーションを作成しており、フォームにはコンボボックスとテキストが貼り付けてあります。コンボボックスは配列になっています。


using System.Windows.Forms;

public class Form1 : System.Windows.Forms.Form
{
省略
  private ComboBox[] cmbArray = new ComboBox[3];
}

private void Form_Load(object sender, System.EventArgs e) // フォームロード
{
  cmbArray[0] = comboBox1;
  cmbArray[1] = comboBox2;
  cmbArray[2] = comboBox3;
}

// イベントハンドラの登録
for( int i=0 ; i<3 ; i++)
{
  cmbArray[i].Validated += new System.EventHandler(ComboBoxClick);
}

private void ComboBoxClick(object sender, System.EventArgs e)
{
  MessageBox.Show(((ComboBox)sender).Text);
}

プログラムは上記のようになっています。
ここで質問なのですが、コンボボックス内のアイテムが変更されたらすぐに発生するイベントは何なのでしょうか?ここではClickイベントを使用していますが、コンボボックス内のアイテムを変更し、そのコンボボックスからカーソルが別のコントロールに移動して初めて発生します。
いろいろとイベントを試したのですが、どれもカーソルが移動する際に発生しているようなのです。
コンボボックス内のアイテムが変更されたらすぐに発生するイベントはあるのでしょうか?どなたかご存知の方がおりましたら、どうかご教授願います。

A 回答 (1件)

> cmbArray[i].Validated += new System.EventHandler(ComboBoxClick);



このソースでtora0125さんが処理しているのはClickイベントではなくValidatedイベントです。
    • good
    • 0
この回答へのお礼

お早いご回答ありがとうございます。

taka_tetsu様のおっしゃる通り、私が処理していたのはValidatedイベントでした・・・。
自分ではcmbArray[i].Validatedの部分も修正していたつもりでした。お恥ずかしいです。

これからはこのようなケアレスミスに気をつけたいと思います。

本当にありがとうございました。

お礼日時:2005/01/17 19:09

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!