Si sólo está utilizando formOptions que escoger un solo valor y cierre, la sugerencia de Mitch es una buena manera de ir. Mi ejemplo aquí se usaría si necesitaras que el niño se comunicara con el padre mientras permanecía abierto.
En su forma original, añadir un método público que va a llamar a la forma infantil, como
public void NotifyMe(string s)
{
// Do whatever you need to do with the string
}
A continuación, cuando se necesita para poner en marcha la ventana secundaria de la matriz, utilice este código:
using (FormOptions formOptions = new FormOptions())
{
// passing this in ShowDialog will set the .Owner
// property of the child form
formOptions.ShowDialog(this);
}
En el formulario secundario, utiliza este código para pasar un valor nuevo a los padres:
ParentForm parent = (ParentForm)this.Owner;
parent.NotifyMe("whatever");
el co De este ejemplo, sería mejor utilizarlo para algo así como una ventana de caja de herramientas que está destinada a flotar sobre la forma principal. En este caso, abriría el formulario secundario (con .TopMost = true) usando .Show() en lugar de .ShowDialog().
Un diseño como este significa que el formulario hijo está estrechamente vinculado al formulario principal (ya que el hijo tiene que asignarle su propietario como ParentForm para llamar a su método NotifyMe). Sin embargo, esto no es automáticamente algo malo.
su solución solo funciona después de cerrar el cuadro de diálogo, qué pasa con el mensaje passwing al formulario primario y viceversa cuando el formulario hijo aún está abierto – Smith