本帖最后由 wubeichuan1 于 2012-02-20 11:42:26 编辑

解决方案 »

  1.   

    这200个控件是设时好的,还是运行时自动创建的?
    如果是运行时自动创建的,那在创建时就顺便注册事件了
    如果是设计好的:
    放到一个“连接器”里,比如 Dictionary<CheckBox,ComboBox> 或你自己写的类,目地就是一一对应起来。
    或者
    让CheckBox ComboBox的名字有规律,比如CheckBox1 ComboBox1 后面的序号一样CheckBox.CheckedChanged统一一个方法处理,通过“连接器”或Controls["ComboBox"+n]找到相应的ComboBox
      

  2.   

                for (int i = 0; i < 10; i++)
                {
                    CheckBox checkBox = new CheckBox();
                    ComboBox comboBox = new ComboBox();
                    this.Controls.Add(checkBox);
                    this.Controls.Add(comboBox);
                    checkBox.Location = new Point(0, i * checkBox.Height);
                    comboBox.Location = new Point(checkBox.Width, i * checkBox.Height);
                    comboBox.Enabled = false;                checkBox.CheckedChanged += delegate { comboBox.Enabled = checkBox.Checked; };//简单点就这么写,不推荐
                }
    这样的话你最好还是做成自定义控件比较好。