例如现在有两个ComboBox控件,A和B能否有办法将B的注册事件情况赋给A呢?比如:A.SelectedValueChanged += B.SelectedValueChanged会提示编译错误:事件只能出现在 += 或 -= 的左边。所以说B的SelectedValueChanged事件不能直接赋予A的SelectedValueChanged。有什么办法吗?因为功能需要B是不确定的不一定是哪个ComboBox(注册的事件也不同),所以A不能直接注册B所注册的事件,只能通过赋值。但是还不能直接赋值。大家有什么办法吗?

解决方案 »

  1.   

    A.SelectedValueChanged += SelectedValueChanged;
    private void B_SelectedValueChanged(object sender,
      

  2.   

    A.SelectedValueChanged += B_SelectedValueChanged; 
      

  3.   

    A.SelectedValueChanged += 这里选择B的事件执行方法名就行了
      

  4.   

    参考以下代码        public Form1()
            {
                InitializeComponent();            foreach (Control c in this.Controls)
                {
                    if (c is System.Windows.Forms.CheckBox)
                    {
                        ((CheckBox)c).CheckedChanged += new System.EventHandler(changValues);
                    }
                }
            }        private void changValues(object sender, EventArgs e)
            {
                this.textBox1.Text = "";
                foreach (Control c in this.Controls)
                {
                    if (c is System.Windows.Forms.CheckBox)
                    {
                        //((CheckBox)c).Checked = true;
                    }
                }
            }
      

  5.   


    我知道可以这样,但是B控件虽然也是和A同类型的都是ComboxBox,但是是动态获取的。比如B控件也许是ComboBox1,也许是ComboBox2而ComboBox1,ComboBox2的SelectedValueChanged事件方法是不一样的。这样A.SelectedValueChanged += 不能确定具体的方法签名所以理想情况是A.SelectedValueChanged += B.SelectedValueChanged可以的话。那么右边在运行时候是也许是ComboBox1,也许是ComboBox2注册的方法了。
      

  6.   

    可以给B控件写一个SelectedValueChanged事件,将B的SelectedValueChanged事件挂到A控件上就可以
      

  7.   

    A.SelectedValueChanged += Method
    A.SelectedValueChanged += Methodprivate void Method(object sender,EventArgz e)
    {
       //to do
    }