Событие загрузки UserControl не сработало - PullRequest
5 голосов
/ 08 февраля 2010

У меня есть приложение WinForms. Мой производный класс Form имеет производный класс UserControl. Я просто поместил несколько элементов управления в один UserControl, чтобы упростить повторное использование. Событие Load для UserControl не вызывается. Должен ли я установить какое-либо свойство?

Ответы [ 3 ]

10 голосов
/ 08 февраля 2010

Попробуйте переопределить метод OnLoad () в вашем UserControl. Из MSDN:

Метод OnLoad также позволяет получать классы для обработки события без прикрепление делегата Это предпочтительный метод для обработки событие в производном классе.

protected override void OnLoad(EventArgs e)
{
    //Your code to run on load goes here 

    // Call the base class OnLoad to ensure any delegate event handlers are still callled
   base.OnLoad(e);
}
3 голосов
/ 08 февраля 2010

Не было бы никаких специальных свойств, которые вам нужно было бы установить для событий UserControl. У вас есть один из 2 способов подписаться на событие. В Свойствах (сетке свойств) выберите список событий ... дважды щелкните на свойстве Load. Все необходимые фрагменты кода будут введены в действие, и ваш курсор будет ждать вас при правильном методе.

Второй метод подписывается на событие следующим образом:

public MyMainForm( )
{
    InitializeComponents();
    myUserControl.Load += new System.EventHandler(myUserControl_Load);
}

void myUserControl_Load(object sender, EventArgs e)
{
    MessageBox.Show(((UserControl)sender).Name + " is loaded.");
}
1 голос
/ 18 февраля 2013

Одна из причин, по которой событие Load прекращает срабатывание, - это когда у вас есть родительский элемент управления, который делает что-то вроде этого

    protected override void OnLoad(EventArgs e)
    {
     //do something
    }

Вы всегда должны убедиться, что делаете это

    protected override void OnLoad(EventArgs e)
    {
     //do something
     base.OnLoad(e);
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...