2014-01-08 3 views
0

Я новичок в C#, и я создал пользовательский элемент управления, похожий на человека, из этой темы:Как получить доступ к выбранному изменению индекса в раскрывающемся списке?

add user control to a form

только, я использовал 4 выпадающие. Я создал пользовательский элемент управления, класс которого называется CustomBaseUserControl.cs. Для каждого выпадающего списка есть все выбранные изменения индексов. Из формы, назовите это TheFormControl, что CustomBaseUserControl был включен, как мне получить доступ к этим значениям изменения событий?

Заранее благодарен!

ответ

1

Если вам нужно получить выбранный индекс TheFormControl, вы можете либо

Использовать переменные для хранения значения на CustomBaseUserControl, в этом случае вы должны будете прослушивать SelectedIndexChanged события и обновляет значения.

Trigger пользовательский выбранный индекс изменился с CustomBaseUserControl на TheFormControl

-

class CustomBaseUserControl: UserControl{ 
int idx1=-1; 
public CustomBaseUserControl() 
{ 
    Initialize(); 
    //Fill ComboBox 

    //Suscribe Event 
    combobox1.SelectedIndexChanged += combobox1_SelectedIndexChanged; 
} 
    void combobox1_SelectedIndexChanged(object sender, EventArgs e) 
    { 
     int index = combobox1.SelectedIndex; 
     if (index != idx1) 
     { 
     idx1=index; 
     RaiseIndexChanged(e); 
     } 

    } 

     public virtual void RaiseIndexChanged(EventArgs ea) 
    { 
     var handler = OnIndexChanged; 
     if (OnIndexChanged != null) 
      OnIndexChanged(this, ea); 
    } 
    public event EventHandler OnIndexChanged; 
} 

класс Caller будет

class TheFormControl: Form 
{ 
    CustomBaseUserControl cb; 
    public TheFormControl() 
    { 
     Initialize(); 
     cb = new CustomBaseUserControl(); 
     cb.OnIndexChanged +=cb_OnIndexChanged; 
    } 
    void cb_OnIndexChanged(object sender, EventArgs e) 
    { 
    // Here you know index has changed on CustomBaseUserControl 
    } 
} 
+0

Спасибо за ваше предложение Р. Quijano, но когда я положил перерыв point в combobox1_SelectedIndexChanged, он не запускается (попадает в точку останова), когда пользователь меняет значение выпадающего списка. Есть ли у вас идея сотрясать мрамор в моей голове? Я уже немного почесываю голову. благодаря! – Allen

+0

Спасибо RQuijano !! Это именно то, что мне нужно! Я написал некоторую логику, но это не совсем сработало, но вы дали мне правильное направление! Спасибо! – Allen

Смежные вопросы