Передать значение между MDI Child в WinForm, используя C # - PullRequest
0 голосов
/ 14 марта 2010

У меня есть MDI Parent, содержащий MenuStrip. Когда я нажимаю на одно из меню, одновременно отображаются две дочерние формы.

У меня есть TextBox и Send Button на одной из моих ChildForm. Когда я что-то набираю в этом TextBox и нажимаю кнопку Send , мне нужно показать это значение в TextBox моей второй дочерней формы.

Я написал открытую функцию во второй дочерней форме и попытался вызвать ее, создав объект второй формы в событии нажатия кнопки «Отправить». Когда я ставлю точки останова в этой публичной функции, я обнаруживаю, что элемент управления проходит через эту публичную функцию при нажатии кнопки «Отправить». Но переданное значение не отображается. И я знаю, что это не стандартный способ сделать это.

Какой-нибудь пример скрипта для помощи? Спасибо.

Ответы [ 2 ]

0 голосов
/ 14 марта 2010

Спасибо за ответ.

Я попробовал ваш код, но выдавал ошибку: Индекс находился за пределами массива.

Я немного изменил код, чтобы он работал следующим образом:

SecondForm f2= (SecondForm)this.MdiParent.MdiChildren[1];
        f2.PublicMethod(some_value_to_pass);

Спасибо за помощь. : -)

0 голосов
/ 14 марта 2010

Возможно, я неправильно прочитал ваш вопрос, но похоже, что в событии Click вашей кнопки Send вы создаете новый экземпляр SecondForm и вызываете его функцию. Если вы создаете новый экземпляр формы здесь, то это уже не тот экземпляр формы, который уже находится в родительской форме MDI (поэтому, похоже, ничего не происходит).

Вам нужно получить ссылку на экземпляр SecondForm, который уже находится в вашей родительской форме MDI, и вызвать его открытый метод. Вы можете получить ссылку на вторую форму через коллекцию родительской формы MdiChildren, например:

SecondForm f2 = (SecondForm)this.MdiChildren[1]; // second form in collection
f2.PublicMethod();
...