Доступ к форме, которая уже была создана - PullRequest
1 голос
/ 20 июня 2010

В C #, используя CF, как отобразить окно, в котором уже есть предыдущий экземпляр, загруженный в память?

Пример: Form1 имеет textBox1 и кнопку.Некоторый текст вводится в texBox1.Нажатие кнопки Form1 загружает Form2, которая также имеет кнопку.Нажатие кнопки Form2 вызывает Form3.Как вы вызываете уже запущенный экземпляр Form1 для вызова его метода updateField, например?

Ответы [ 2 ]

1 голос
/ 20 июня 2010

Вы делаете это с событиями.У Form3 должно быть открытое свойство, которое отображает значение и событие, которое вызывается при изменении значения.Form2 должен подписаться на событие, чтобы отслеживать изменения.Повторите, чтобы сообщить Form1.

Это разделит классы, Form3 не нужно ничего знать о Form2 или Form1, только чтобы кого-то заинтересовать значение свойства.Рефакторинг этих родительских классов форм не может нарушить Form3.Обратите внимание, что классы управления Windows Forms работают одинаково.

1 голос
/ 20 июня 2010

Просто сохраните ссылку на экземпляр Form1 где-нибудь - например, передайте его в Form2 при его создании, а затем Form2 может передать его в Form3 для использования.

Здесь нет ничего особенного в элементах управления пользовательским интерфейсом - просто подумайте, что бы вы сделали, если бы хотели получить доступ к любому другому объекту.

...