Передача значения обратно в исходную форму - PullRequest
1 голос
/ 11 октября 2010

У меня есть две формы: Form1 и Form2. Я могу получить содержимое списка в форме Form1 в другой список в форме Form2, вызвав новую форму Form2 и передав в нее значения. Я обновляю список в форме form2, например, удаляя из него элемент. Как мне передать содержимое списка Form2 BACK оригинальному списку в Form1? Form1 - это первая форма, которая появляется при запуске приложения, поэтому я не хочу вызывать новый экземпляр формы.

Ответы [ 2 ]

2 голосов
/ 11 октября 2010

Я предлагаю вам внедрить свойство в Form2, которое возвращает соответствующие данные, и заставить Form1 прочитать это свойство, «вытягивая» данные из Form2.

Это лучше, чем заставить Form2 «вытолкнуть» данные обратнов форму Form1, поскольку она хранит зависимости только в одном направлении.

1 голос
/ 11 октября 2010

Вы можете передать начальный экземпляр Form1 в Form2 и использовать эту ссылку для передачи данных обратно в Form1.

// A property `Form2`
public Form1 RefToForm1 { get; set; }

// On form 1, after initializing `Form2`:
Form2 frm2 = new Form2();
frm2.RefToForm1 = this;

Примечание:

Есть лучшее решение, чем указанное выше (оно быстрое и грязное). Лучшим вариантом было бы создать свойство на Form2 с типом данных, который вам нужен в Form1, и получить к нему доступ через данные:

// A property `Form2`
public List<int> Form2DataForForm1 { get; set; }

// On form 1
var dataFromForm2 = frm2.Form2DataForForm1;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...