¿La mejor manera de acceder a un control en otro formulario en Windows Forms?

n primer lugar, esta es una pregunta sobre una aplicación de escritorio que utiliza Windows Forms, no una ASP.NET pregunta.

Necesito interactuar con los controles en otras formas. Estoy tratando de acceder a los controles usando, por ejemplo, lo siguiente ...

otherForm.Controls["nameOfControl"].Visible = false;

No funciona de la manera que esperaría. Termino con una excepción lanzada desdeMain. Sin embargo, si hago los controlespublic en lugar deprivate, Puedo acceder a ellos directamente, así que ...

otherForm.nameOfControl.Visible = false;

¿Pero es esa la mejor manera de hacerlo? Está haciendo los controlespublic en el otro formulario considerado "mejor práctica"? ¿Existe una forma "mejor" de acceder a los controles en otro formulario?

Explicación adicional

Esto es en realidad una especie de seguimiento de otra pregunta que hice,Mejor método para crear un tipo de interfaz de "diálogo de preferencias de vista de árbol" en C #?. La respuesta que obtuve fue excelente y resolvió muchos, muchos problemas de organización que tenía en términos de mantener la interfaz de usuario recta y fácil de trabajar tanto en tiempo de ejecución como en tiempo de diseño. Sin embargo, trajo a colación este problema molesto de controlar fácilmente otros aspectos de la interfaz.

Básicamente, tengo un formulario raíz que crea una instancia de muchos otros formularios que se encuentran en un panel en el formulario raíz. Entonces, por ejemplo, un botón de radio en uno de esos subformularios podría necesitar alterar el estado de un icono de franja de estado en el formulario raíz principal. En ese caso, necesito el subformulario para hablar con el control en la tira de estado del formulario principal (raíz). (Espero que tenga sentido, no en el sentido de "quién está en primer lugar").

Respuestas a la pregunta(34)

Su respuesta a la pregunta