例如现在有两个ComboBox控件,A和B能否有办法将B的注册事件情况赋给A呢?比如:A.SelectedValueChanged += B.SelectedValueChanged会提示编译错误:事件只能出现在 += 或 -= 的左边。所以说B的SelectedValueChanged事件不能直接赋予A的SelectedValueChanged。有什么办法吗?因为功能需要B是不确定的不一定是哪个ComboBox(注册的事件也不同),所以A不能直接注册B所注册的事件,只能通过赋值。但是还不能直接赋值。大家有什么办法吗?
private void B_SelectedValueChanged(object sender,
{
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;
}
}
}
我知道可以这样,但是B控件虽然也是和A同类型的都是ComboxBox,但是是动态获取的。比如B控件也许是ComboBox1,也许是ComboBox2而ComboBox1,ComboBox2的SelectedValueChanged事件方法是不一样的。这样A.SelectedValueChanged += 不能确定具体的方法签名所以理想情况是A.SelectedValueChanged += B.SelectedValueChanged可以的话。那么右边在运行时候是也许是ComboBox1,也许是ComboBox2注册的方法了。
A.SelectedValueChanged += Methodprivate void Method(object sender,EventArgz e)
{
//to do
}