Связь между разными формами - PullRequest
5 голосов
/ 14 июня 2010

В C #, используя winforms, каков лучший способ заставить формы общаться друг с другом? Отправка данных, сообщений, строк, чего угодно, от одного к другому?

Делегаты?

Идеи? * * 1005

Ответы [ 3 ]

6 голосов
/ 14 июня 2010

Мы успешно использовали то, что называется Шаблон событий, в нескольких приложениях Winform.Вот хорошая ссылка , которая поможет вам начать работу.

3 голосов
/ 14 июня 2010

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

Звучит так, будто вы ищете события. Когда происходит какое-либо событие, будет вызван любой зарегистрированный делегат.

Здесь вы найдете учебник по MSDN для событий .

1 голос
/ 14 июня 2010

все зависит от того, что вы хотите общаться.

Допустим, это данные конфигурации; В главной форме вы можете создать статическое свойство под названием «Настройки», которое будет отображать ваш объект. Тогда все формы увидят один и тот же экземпляр настроек и все увидят какие-либо изменения.

для дополнительного кредита вы можете реализовать INotifyPropertyChanged и заставить его вызвать событие. таким образом, все формы, смотрящие на Настройки, будут уведомлены, если что-то изменится.

...