Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 检测表单中的其他类组合框更改_C# - Fatal编程技术网

C# 检测表单中的其他类组合框更改

C# 检测表单中的其他类组合框更改,c#,C#,我想检测组合框selectedindex更改。 组合框位于不同的类中,然后是表单类: 类分析 { 公共分析(表格) { 大小=新组合框(); 尺寸。位置=新点(100100); size.Name=“matrixsize”; 尺寸。尺寸=新尺寸(200100); 尺寸.项目.添加范围(矩阵尺寸); 窗体控件。添加(大小); } 私有字符串[]矩阵_大小={“1”、“2”、“3”、“4”、“5”、“6”、“7”、“8”、“9”、“0”}; 专用组合框大小; } 我正在这里创建一个类型为Analy

我想检测组合框selectedindex更改。 组合框位于不同的类中,然后是表单类:

类分析
{
公共分析(表格)
{
大小=新组合框();
尺寸。位置=新点(100100);
size.Name=“matrixsize”;
尺寸。尺寸=新尺寸(200100);
尺寸.项目.添加范围(矩阵尺寸);
窗体控件。添加(大小);
}
私有字符串[]矩阵_大小={“1”、“2”、“3”、“4”、“5”、“6”、“7”、“8”、“9”、“0”};
专用组合框大小;
}
我正在这里创建一个类型为Analyze的新对象:

现在我想检测Analyze.size中值的变化,我该怎么做?访问“大小”组合框的正确方法是什么


提前感谢。

只需添加您自己的处理程序:

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);
    }
  }
}
然后在调用表单上注销您的事件:

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
}

向分析类添加事件。您将组合框添加到表单中,因此它不是“位于其他类中”,而是附加到表单中。您可以通过窗体控件[“matrixsize”]访问它,因为您已将“matrixsize”指定给Name属性。
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
}