Вероятно, это очень простой вопрос, но по какой-то причине даже правильный способ поиска ответа в Интернете ускользает от меня ...
Я пытаюсь создать пользовательский элемент управления, состоящий из нескольких меток и индикаторов выполнения. Однако я хочу, чтобы у всего элемента управления было событие «Click», которое вызывается независимо от того, на каком элементе внутри элемента управления нажата кнопка. Я создал процедуру «HandleClick», которая назначается каждому элементу управления:
private void HandleClick(object sender, EventArgs e)
{
// Call the callback function, if we were asked to
if (OnClick != null)
{
EventArgs ee = new EventArgs();
OnClick(this, ee);
}
else
{
MessageBox.Show("OnClick was null!");
}
}
В данном случае OnClick - это переменная, определенная на уровне управления:
public new event EventHandler OnClick;
Теперь это правильно работает только в форме. На одной метке он показывает MessageBox, а затем вызывает событие во вложенной форме. Все остальные показывают окно сообщения.
У меня такое ощущение, что это должно быть очевидно, но день разочарования оставил у меня ощущение, что я упускаю что-то, что должно быть самоочевидным, но когда я увижу это, я почувствую себя полным шутом ... Кто-нибудь может прекратить хихикать над моей глупостью достаточно долго, чтобы просветить меня, где я ошибся?