Вызов элементов управления из скрытой формы в C # - PullRequest
0 голосов
/ 12 июня 2009

Я разрабатываю приложение для формы Windows, в котором мне нужно вызвать из формы A событие щелчка для кнопки команды в форме B. Форма B должна всегда оставаться скрытой. Это было просто сделать в Visual Basic, я бы назвал это так: «FormName.ControlName.Event / Method».

Это не работает для меня сейчас в C #, Visual Studio 8. Кто-нибудь может помочь?

Ответы [ 4 ]

2 голосов
/ 13 июня 2009

Все, что вам нужно сделать, это дать Форме A ссылку на Форму B. Предположительно, в вашем приложении есть некоторый стартовый код, который знает обе формы. Если это так, вы могли бы иметь такой код:

// starting up
FormB b = new FormB();
b.Visible = false;

FormA a = new FormA();
a.FormBInstance = b; // you would have to add the 'FormBInstance' property to Form A class yourself
a.Show();

// Now, if Form A needs to do something with FormB, it just needs to use the FormBInstance property.

Имеет смысл?

0 голосов
/ 22 декабря 2011

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

0 голосов
/ 13 июня 2009

Вы должны создать публичный метод в FormB, который делает то, что вам нужно. Таким образом, вы избавляетесь от необходимости напрямую вызывать обработчик события click, что не очень хорошая вещь.

0 голосов
/ 13 июня 2009

Звучит довольно странно, но со ссылкой на экземпляр формы B и обнародованный элемент управления Button:

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