Сохранение данных в родительском окне из дочернего окна? - PullRequest
0 голосов
/ 21 марта 2012

У меня есть приложение для Windows.

В приложении для Windows есть наша библиотека XML.

  public NetspotXMLLibV1 XMLLib;

    public Form1()
    {
        InitializeComponent();
        XMLLib = new XmlLibrary.NetspotXMLLibV1();
    }

Также имеется настраиваемый элемент управления.

Этот настраиваемый элемент управленияимеет кнопку, которая имеет

SelectWidgitWindow widgit = new SelectWidgitWindow();
widgit.ShowDialog();

при нажатии кнопки, это открывает новое окно.Я делаю кое-что в этом новом окне.Когда я нажимаю кнопку в новом окне, я хочу сохранить материал в окне Form1

Как мне получить доступ к этому в моем новом окне (SelectWidgitWindow)?

Т.е.

или

Windows(1).XMLLib.Add(ItemForProcessing);

Пожалуйста, помогите

Ответы [ 2 ]

0 голосов
/ 21 марта 2012

Используйте перегрузку ShowDialog , к которой вы можете передать владельца для новой формы:

Form2 f = new Form2();
f.ShowDialog(this.Parent);

и в форме 2:

((Form1)Owner).MyProperty = 11;
0 голосов
/ 21 марта 2012

Пара способов:

1) Предоставьте элементы, которые вы хотите извлечь из родительской формы, в качестве свойств дочерней формы. В коде родительской формы при возврате ShowDialog вы можете получить значения, которые хотите сохранить, из свойств.

2) Передайте ссылку на родительскую форму в форму (возможно, когда она создана). Затем дочерняя форма может вызывать некоторый метод или устанавливать некоторые свойства в родительской форме. Обратите внимание, что это не предпочтительно, так как он связывает дочерний элемент с родительской формой, то есть его нельзя вызывать из любой другой формы.

...