Событие Click для пользовательского элемента управления .Net (Windows Forms)

Вероятно, это очень простой вопрос, но по какой-то причине даже правильный способ поиска ответа в Интернете ускользает от меня ...

Я ' m пытается создать пользовательский элемент управления, состоящий из нескольких меток и индикаторов выполнения. Однако я хочу, чтобы у всего элемента управления было событие «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, а затем вызывает событие во вложенной форме. Все остальные показывают окно сообщения.

У меня такое чувство, что это должно быть очевидно, но после полудня разочарования я чувствую, что упускаю что-то само собой разумеющееся, но когда я это увижу, я почувствую себя полным шутом ... .. может ли кто-нибудь перестать хихикать над моей глупостью достаточно долго, чтобы просветить меня, в чем я ошибся?

5
задан stakx supports GoFundMonica 14 February 2017 в 19:57
поделиться