Puede utilizar un enfoque diferente si lo desea.
- Usando System.Action (Aquí simplemente pasa la función del formulario principal como parámetro al formulario secundario como una función de devolución de llamada)
- Método OpenForms (usted llama directamente a uno de sus formularios abiertos)
Usando System.Action
Puede pensar en ello como una función de devolución de llamada que se pasa al formulario secundario.
Options frmOptions = new Options(UpdateSettings);
frmOptions.Show();
public void UpdateSettings(string data)
{
}
Action<string> UpdateSettings = null;
public Options(Action<string> UpdateSettings)
{
InitializeComponent();
this.UpdateSettings = UpdateSettings;
}
private void btnUpdate_Click(object sender, EventArgs e)
{
if (UpdateSettings != null)
UpdateSettings("some data");
}
Método OpenForms
Este método es fácil ( 2 líneas ). Pero solo funciona con formularios abiertos. Todo lo que necesita hacer es agregar estas dos líneas donde quiera que quiera pasar algunos datos.
Main frmMain = (Main)Application.OpenForms["Main"];
frmMain.UpdateSettings("Some data");
Proporcioné mi respuesta a una pregunta similar aquí.