比如:
private void checkBox1_CheckedChanged(object sender, EventArgs e)
        {
            if (checkBox1.CheckState == CheckState.Checked)
                GlobalUser.myCurve1.IsVisible = true;
            else
                GlobalUser.myCurve1.IsVisible = false;
        }private void checkBox2_CheckedChanged(object sender, EventArgs e)
        {
            if (checkBox2.CheckState == CheckState.Checked)
                GlobalUser.myCurve2.IsVisible = true;
            else
                GlobalUser.myCurve2.IsVisible = false;
        }
有70多个同样的事件,该怎样写才简单些呢?

解决方案 »

  1.   

    调用同一事件
    private void chk_CheckedChanged(object sender, EventArgs e) 
            { 
               CheckBox chk=sender as CheckBox;
            } 
      

  2.   

    private void checkBox_CheckedChanged(object sender, EventArgs e) 
    {
                if (((CheckBox)sender).CheckState == CheckState.Checked) 
                    GlobalUser.myCurve1.IsVisible = true; 
                else 
                    GlobalUser.myCurve1.IsVisible = false; 
    }checkBox1.CheckedChanged+=new EventHandler(checkBox_CheckedChanged);
    checkBox2.CheckedChanged+=new EventHandler(checkBox_CheckedChanged);
    ......
    checkBoxn.CheckedChanged+=new EventHandler(checkBox_CheckedChanged);好好看看MSDN,把事件的本质搞清楚...
      

  3.   

    循环给控件添加同一个处理事件 
    foreach (Control con in this.Controls)
                {
                    if (con is CheckBox)
                    {
                        ((CheckBox)con).CheckedChanged += new EventHandler(checkBox_CheckedChanged);
                    }
                }
     void checkBox_CheckedChanged(object sender, EventArgs e)
            {
                if (checkBox1.CheckState == CheckState.Checked) 
                    GlobalUser.myCurve1.IsVisible = true; 
                else 
                    GlobalUser.myCurve1.IsVisible = false; 
            }
      

  4.   


    问下兄弟...这个是不是不同的checkbox用委托调用了同一个checkbox的判断啊?