Существует ли общепринятая практика манипуляций с перекрестным контролем? - PullRequest
0 голосов
/ 22 ноября 2010

Допустим, у меня есть две формы: Форма1 и Форма2 . Form1 имеет текстовое поле, Textbox1 и Button1 .

При нажатии кнопки 1 создается и отображается новый экземпляр формы Form2. Если Form2 необходимо получить доступ к Textbox1, как это сделать? Должна ли Form2 иметь публичную переменную для хранения ссылки на текстовое поле? Или, когда Form2 закрывается, должен ли он вызывать какой-либо открытый метод в Form1, который обновляет текстовое поле? Спасибо за ваш совет.

Ответы [ 2 ]

2 голосов
/ 22 ноября 2010

Вам, вероятно, следует добавить открытое свойство к первой форме, которая предоставляет текст текстового поля.

Однако, что гораздо важнее, вам следует назвать свои элементы управления и формы .
Тамявляется (почти) ничем не хуже формы с элементами управления textBox1, button1, comboBox13, checkBox37.

1 голос
/ 22 ноября 2010

Если для Form2 при загрузке требуется значение текстового поля из Form1, я бы добавил это значение в метод конструктора Form2 и передал бы его таким образом.

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

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

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...