Использование делегата для запуска события, если панель видна? - PullRequest
0 голосов
/ 14 июля 2011

Я пытаюсь найти причину, чтобы использовать делегата, и насколько я знаю, делегата, в основном то, что для события.

Событие, которое я бы провел, было бы в Windows Forms. У меня есть панель, которая запускается невидимой, но когда она становится видимой, все в фоновом режиме отключается (всплывающее окно).

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

Я просто не могу понять, как решить это с делегатом.

Ответы [ 2 ]

0 голосов
/ 14 июля 2011

System.Windows.Forms.Control s (включая Панели) имеют событие VisibleChanged, к которому вы можете привязаться.Так что

myPanel.VisibleChanged += OnMyPanelVisibleChanged;

Или в строке:

myPanel.VisibleChanged += (sender, e) => this.Enabled = myPanel.Visible;
0 голосов
/ 14 июля 2011

Как насчет:

panel.VisibleChanged += (sender, args) =>
{
    if (panel.Visible) // Just become visible
    {
        // Disable everything else
    }
};
...