Как получить доступ к экземпляру формы из элементов управления формы - PullRequest
0 голосов
/ 27 января 2012

Я использую C # и очень старую версию .Net.У меня есть сотни форм и класс.Каждая форма имеет метод ProcessDump ().Когда форма открыта, ее элементы управления передаются моему классу.Мне нужно вызвать метод ProcessDump, и все, что у меня есть, это элементы управления формы.Как я могу получить доступ к методу?

1 Ответ

2 голосов
/ 27 января 2012

Пусть каждая форма реализует интерфейс с именем IProcessDump:

interface IProcessDump
{
    void ProcessDump();
}

Предполагая WinForms, существует метод FindForm, возвращающийся к .NET 1.1 Возьмите форму и протестируйте ее для интерфейса:

Form formRef = myControl.FindForm();
IProcessDump procDump = formRef as IProcessDump;

if (procDump != null)
{
    procDump.ProcessDump();
}

Кроме того, элементы управления имеют свойство Parent. Для элементов управления, размещенных непосредственно в форме, родительским элементом будет форма:

foreach (Control c in myControls)
{
    if (c.Parent != null && c.Parent is Form)
    {
        // Found, go nuts.
    }
}

Проверка нуля может не потребоваться.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...