C# 在用户控件内的组合框上调用SelectedIndexChanged

C# 在用户控件内的组合框上调用SelectedIndexChanged,c#,.net,combobox,user-controls,C#,.net,Combobox,User Controls,我正在使用.NET 4并尝试创建一个CustomControl,但当我将此CustomControl添加到Windows窗体时,我希望能够访问用户控件内组合框的SelectedIndexChanged 基本上,我想要的是当组合框触发选定的IndexChanged时,它将在Windows窗体中运行一些代码 以下是我到目前为止的情况 public partial class CustomControl : UserControl ... private void uiComboBox_Selec

我正在使用.NET 4并尝试创建一个CustomControl,但当我将此CustomControl添加到Windows窗体时,我希望能够访问用户控件内组合框的SelectedIndexChanged

基本上,我想要的是当组合框触发选定的IndexChanged时,它将在Windows窗体中运行一些代码

以下是我到目前为止的情况

public partial class CustomControl : UserControl

...

private void uiComboBox_SelectedIndexChanged(object sender, EventArgs e)
{

}
做我想做的事最好的方法是什么


任何帮助都将不胜感激。

如果您的uiComboBox位于用户控件(名为CustomControl)中,那么您可以在构造函数中连接处理程序,如下所示:

uiComboBox.SelectedIndexChanged += uiComboBox_SelectedIndexChanged;
另一方面,如果uiComboBox位于CustomControl之外,则需要使用上述技术处理事件,然后手动调用CustomControl中的方法

public class MyForm:Form {
    MyForm(){
        uiComboBox.SelectedIndexChanged += uiComboBox_SelectedIndexChanged;
    }

    private void uiComboBox_SelectedIndexChanged(object sender, EventArgs e)       {
        customControl.InvokeSomeMethod(xxx);
    }
}

在我的CustomControl类中,我添加了以下代码,以便在将自定义控件作为控件添加到表单时,combox上SelectedIndexChanged将由我的自定义控件拾取

    public event EventHandler SelectedCBIndexChanged;

    ...

    public CustomControl()
    {
        InitializeComponent();
        this.uiComboBox.SelectedIndexChanged += new System.EventHandler(this.uiComboox_SelectedIndexChanged);
    }


    protected void uiComboox_SelectedIndexChanged(object sender, EventArgs e)
    {
        if (SelectedCBIndexChanged != null)
            SelectedCBIndexChanged(sender, e);
    }
然后在表单上,我添加了自定义控件,并在设计器中启用SelectedCBIndexChanged属性,该属性创建了下面的事件/方法,这正是我所追求的

    private void customControl_SelectedCBIndexChanged(object sender, EventArgs e)
    {
        // Do what I want
    }  

我想我将在这里保留此选项,因为它可能会在将来帮助其他人。

CustomControl需要有一个事件,当CustomControl(uiComboBox)uiComboBox.SelectedIndexChanged事件中的combox发生时,将有效地触发该事件。我不太确定上面提供的任何解决方案是否能够解决这个问题?