У меня есть две формы: Form1 и Form2. Я могу получить содержимое списка в Form1 в другой список в Form2, вызвав новый Form2 и передав значения. Я обновляю List в form2, скажем, удаляя из него элемент. Как передать содержимое списка Form2 BACK в исходный список в Form1? Form1 - это первая форма, которая появляется при запуске приложения, поэтому я не хочу вызывать новый экземпляр формы.Передача значения обратно в первоначальную форму
ответ
Вы можете передать исходный экземпляр 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;
Я нахожу, что это решение создает двухстороннюю зависимость между Form1 и Form2. Я предпочел бы избежать того, чтобы Form2 зависел от Form1; см. мой ответ на этой странице. – CesarGon
Спасибо, что сработало безумное очарование. Еще раз спасибо. –
@CesarGon - зависимость уже существует. Сделать это двунаправленным не делает вещи хуже (на мой взгляд) и делает отношения более явными (тот факт, что данные должны путешествовать в обоих направлениях). – Oded
Я предлагаю вам реализовать недвижимость в Form2, которая возвращает соответствующие данные, и иметь Form1 читает это свойство, «вытягивая» данные из формы 2.
Это лучше, чем Form2 «надавить» данные обратно в Form1, поскольку он сохраняет зависимости только в одну сторону.
Ни толкание, ни вытаскивание по своей сути лучше. Для притяжения используйте свойства, описанные в Cesar. Для push используйте события. –
@Ben: Я согласен, ни толкание, ни вытаскивание по своей сути лучше. Но однонаправленная зависимость лучше, чем двунаправленная. Продвижение события может поддерживать зависимости только в одну сторону, что хорошо. – CesarGon
Лучше, если бы вы могли предоставить код в понимании лучшего – venkat
- 1. Передача значения из класса обратно в форму
- 2. как перезвонить в первоначальную форму
- 3. Передача значения параметра обратно в форму, которая называется формой
- 4. как получить первоначальную функцию обратно в Lua
- 5. Передача значения обратно в модуль
- 6. Преобразование переменной в ее первоначальную форму в JShell
- 7. Передача «Пользовательского» значения обратно из Paypal
- 8. Передача параметров обратно в ту же форму с помощью PHP
- 9. Передача многих переменных из PHP обратно в форму
- 10. Laravel XXS Filter - и передача «withInput» обратно в форму
- 11. Передача информации из ссылочного класса обратно в вызывающую форму
- 12. Передача значения из combobox в форму 1
- 13. Передача значения параметра в новую форму
- 14. Передача значения таймера в следующую форму
- 15. Передача значения datagridview в другую форму
- 16. Передача значения слайдера jQuery на форму Django
- 17. Передача значения из php в mysql и обратно в javascript
- 18. Передача данных в существующую форму
- 19. Перенаправить обратно в форму, сохраняя ранее введенные значения
- 20. Передача переменных в другую форму
- 21. Передача значения из класса NSObject обратно в UIViewController
- 22. Swing: Передача значения обратно в пользовательский интерфейс из запланированного потока
- 23. Передача данных обратно в компоненты
- 24. Передача строки обратно в popViewControllerAnimated
- 25. Передача объекта обратно в блоке
- 26. Как повернуть изображение на 120 градусов, сохраняя свою первоначальную форму
- 27. Передача параметров в форму
- 28. Передача OpenArgs в форму
- 29. Контроллер перенаправляет обратно в форму POST
- 30. Передача переменные из Колбы обратно в Ajax
Какой у вас код для отображения 'form2'? – ChrisF