Как получить звонилку winform - PullRequest
0 голосов
/ 13 октября 2010

У меня есть winform, которая открывает (ShowDialog) другие winform.

Есть ли способ получить первую winform из открытой winform, не передавая ее в качестве параметра или не используя "public static" решение?

РЕДАКТИРОВАТЬ: Не заметил, что я нахожусь в пользовательском контроле, как я могу получить мою форму?

Заранее спасибо.

Ответы [ 3 ]

0 голосов
/ 13 октября 2010

this.FindForm () получит форму с вашим пользовательским элементом управления. Получив форму, вы можете использовать свойство .Owner.

ИМХО.

0 голосов
/ 10 июля 2013

Единственный способ, которым я придумал, - подключить событие Paint в вашем UserControl.Я знаю, это плохая практика, но она работает.Я не горжусь ...:)

    private bool _uglyOnlyDoSomethingFirstTimeInPaintEventFlag = false;
    private void btnDestination_Paint(object sender, PaintEventArgs e)
    {
        if (!_uglyOnlyDoSomethingFirstTimeInPaintEventFlag)
        {
            _uglyOnlyDoSomethingFirstTimeInPaintEventFlag = true;
            //...do FindForm() here and you should get the right form
        }
    }
0 голосов
/ 13 октября 2010

А как насчет свойства владельца формы?

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