У меня есть 15 comboBox'es, и я не хочу создавать обработчик событий для каждого. Как сделать только одну процедуру и связать все Combobox'ах с ней?Как создать только один метод обработчика событий для нескольких элементов управления?
private void cbSlots0_SelectedIndexChanged(object sender, EventArgs e)
{
var item = ConfigClass.Slots["0"][cbSlots0.SelectedIndex];
ConfigClass.Slots["0"].Insert(0, item);
ConfigClass.Slots["0"].RemoveAt(cbSlots0.SelectedIndex + 1);
}
private void cbSlots1_SelectedIndexChanged(object sender, EventArgs e)
{
var item = ConfigClass.Slots["1"][cbSlots1.SelectedIndex];
ConfigClass.Slots["1"].Insert(1, item);
ConfigClass.Slots["1"].RemoveAt(cbSlots1.SelectedIndex + 1);
}
Правильный ответ:
var cb = ((ComboBox)sender);
var tag = int.Parse(cb.Tag.ToString());
var item = ConfigClass.Slots[tag.ToString()][cb.SelectedIndex];
ConfigClass.Slots[tag.ToString()].Insert(tag, item);
ConfigClass.Slots[tag.ToString()].RemoveAt(cb.SelectedIndex + 1);
возможно дубликат ([Установить единый обработчик событий для нескольких кнопок в .NET?] http://stackoverflow.com/questions/4157851/set-up-single-event-handler-for-multiple-buttons-in-net), [C# повторное использование обработчика событий хорошая практика] (http://stackoverflow.com/ вопросы/641365/C повторное использование событийно-ч andler-good-practice) –
@ Коди Серый, почти – Mediator