2015-10-15 27 views
0

我使用.NET 4並嘗試創建一個CustomControl,但是當我將此CustomControl添加到我的Windows窗體上時,我想訪問我的用戶控件中ComboBox的SelectedIndexChanged。在用戶控件中的組合框上調用SelectedIndexChanged

基本上,我想要的是當組合框觸發Selected IndexChanged時,它將在Windows窗體中運行一些代碼。

以下是我到目前爲止。

public partial class CustomControl : UserControl 

... 

private void uiComboBox_SelectedIndexChanged(object sender, EventArgs e) 
{ 

} 

什麼是做我想做的最好的方法?

任何幫助將不勝感激。

回答

0

在我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 
    } 

我想我會在這裏留下它,因爲它可能會在未來幫助其他人。

0

如果您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); 
    } 
} 
+0

CustomControl將需要一個事件,當CustomControl(uiComboBox)uiComboBox.SelectedIndexChanged事件中的combox發生時,該事件將被有效觸發。我不太確定上面提供的解決方案是否可以解決這個問題? – SamoanProgrammer

相關問題