我选择“山东”的话,“华东地区”也会选中,我把“山东”的去掉,“华东地区”的也会去掉,其实的不改变
但是“华东地区”有一个checkchanged 事件,当它不是选中状态时,后边的全部不选中
于早 它们都不是选中状态了
有什么办法 可以让“华东地区” 不执行它的checkchanged 事件,
或者是其它方法实现。

解决方案 »

  1.   

    lz是想让在“华东地区”不选中的情况下也能选中后面的选项吗?
    我不知道原来的代码是什么样子,如果
    “华东地区”的checkchanged事件已经有方法订阅了 
    "华东电力".checkchanged += 事件处理方法
    你只要取消订阅就可以了
    "华东电力".checkchanged -= 事件处理方法
    这样checkchanged 也不会执行事件处理方法的代码了
    不知道这样是楼主想要的吗?
      

  2.   


            private void checkEdit3_CheckedChanged(object sender, EventArgs e)//华东地区的changed事件
            {
                CheckEdit ce = sender as CheckEdit;
                PanelControl pal = ce.Parent as PanelControl;
                foreach (Control c in pal.Controls)
                {
                    if (c is PanelControl)
                        ChangedCheckStatus((c as PanelControl), ce.Checked);  //修改后边省份的checked
                }         
            }        private void chkXinJiang_CheckStateChanged(object sender, EventArgs e)//后边省份的changed事件
            {
                CheckEdit ce = sender as CheckEdit;
                PanelControl pal = ce.Parent as PanelControl;
                bool checkState = checkVal(pal);  //得到是否省份全部选中            PanelControl palParent = pal.Parent as PanelControl;
                foreach (Control c in palParent.Controls)
                {
                    if (c is CheckEdit)
                    {
                        (c as CheckEdit).Checked = checkState;//更改华东地区的checked
                    }
                }
            }  LS 像你说的,我把华东地区的changed事件去掉,我如果再去改变它的选择状态 ,那不也不行吗