0

ComboBox の selectedindex の変更を検出したい。コンボボックスは Form クラスとは異なるクラスにあります。

class Analyze
    {
        public Analyze(Form theform)
        {
            size = new ComboBox();
            size.Location = new Point(100,100);
            size.Name = "matrixsize";
            size.Size= new Size(200,100);
            size.Items.AddRange(matrix_sizes);
            theform.Controls.Add(size);
        }
        private string[] matrix_sizes = { "1", "2", "3", "4", "5", "6", "7", "8", "9", "0" };
        private ComboBox size;
    }

そして、タイプ Analyze の新しいオブジェクトをここに作成します。

private void Analyze_Click(object sender, EventArgs e)
{
    Analyze analyze = new Analyze(this);
}

Analyze.size の値の変化を検出したいのですが、どうすればよいですか? サイズコンボボックスにアクセスする正しい方法は何ですか?

前もって感謝します。

4

1 に答える 1

1

Just add your own handler:

class Analyze {
  public event EventHandler SelectedIndexChanged;

  public Analyze(Form theform) {

    ...
    size.SelectedIndexChanged += size_SelectedIndexChanged;
    theform.Controls.Add(size);
  }

  void size_SelectedIndexChanged(object sender, EventArgs e) {
    if (SelectedIndexChanged != null) {
      SelectedIndexChanged(sender, e);
    }
  }
}

then stub out your event on the calling form:

private void Analyze_Click(object sender, EventArgs e)
  Analyze analyze = new Analyze(this);
  analyze.SelectedIndexChanged += analyze_SelectedIndexChanged;
}

void analyze_SelectedIndexChanged(object sender, EventArgs e) {
  // do something
}
于 2012-05-25T18:01:32.320 に答える