Если вам нужно получить выбранный индекс 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
}
}
Спасибо за ваше предложение Р. Quijano, но когда я положил перерыв point в combobox1_SelectedIndexChanged, он не запускается (попадает в точку останова), когда пользователь меняет значение выпадающего списка. Есть ли у вас идея сотрясать мрамор в моей голове? Я уже немного почесываю голову. благодаря! – Allen
Спасибо RQuijano !! Это именно то, что мне нужно! Я написал некоторую логику, но это не совсем сработало, но вы дали мне правильное направление! Спасибо! – Allen