При доступе к Форме это уже инстанцировали

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

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

1
задан arnoldino 20 June 2010 в 07:26
поделиться

2 ответа

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

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

1
ответ дан 2 September 2019 в 23:39
поделиться

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

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

1
ответ дан 2 September 2019 в 23:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: