Melhor maneira de se comunicar entre os formulários?

Eu quase nunca usei interfaces gráficas (avançadas, ou de todo), ou um formulário simples com controles simples ... mas desta vez eu tenho algo um pouco mais complexo e não tenho muita experiência com GUI. Eu tenho uma forma principal (e possivelmente mais no futuro) da qual outras sub-formas se abrem (e elas podem ter sub-formas próprias) e me pergunto qual é, na sua opinião, a melhor maneira de se comunicar entre elas?

Pensei em passar o formulário principal como um parâmetro para os construtores das sub-formas, mas não parece ser uma boa maneira, especialmente se eu precisar me comunicar entre outras sub-formas distintas, não para mencionar, eu tenho que verificar duas vezes a entrada ou fazer alguns métodos, mas parece mais uma programação funcional do que uma programação orientada a objetos ...

Talvez eu possa:

Crie uma classe estática (ou Properties.Settings) para configurações globais. Contras: todas as alterações de dados são necessárias para serem copiadas para a classe, estou procurando algo um pouco mais confortável e elegante.Use ofeio maneira de acessar os controles de Application.OpenForms - corrige o problema de passar o formulário principal como parâmetro. Contras: não muito estável.Faça outra coisa que eu não tenha pensado. Sugestões? Contras: ainda não sei o que é.

questionAnswers(4)

yourAnswerToTheQuestion