Cargue un formulario sin mostrarlo

Versión corta: quiero activar el evento Form_Load () sin hacer visible el formulario. Esto no funciona porque Show () ignora el valor actual de la propiedad Visible:

tasksForm.Visible = false;
tasksForm.Show();

Versión larga: tengo una aplicación WinForms con dos formas: principal y tareas. El formulario principal siempre se muestra. El usuario puede hacer clic en un botón para abrir el formulario de tareas o hacer clic en algunos botones que simplemente ejecutan una tarea directamente sin abrir el formulario de tareas.

Cuando un usuario solicita ejecutar una tarea directamente, me gustaría llamar a algunos métodos públicos en el formulario de tareas sin mostrarlo. Desafortunadamente, la lógica de la tarea depende de las cosas que suceden en el evento Form_Load (). La única forma que puedo encontrar para activar Form_Load () es llamar a Show (). Lo mejor que he podido hacer es mostrar el formulario en el estado minimizado:

tasksForm.WindowState = FormWindowState.Minimized;
tasksForm.Show();

Supongo que la solución más limpia sería extraer la lógica de las tareas del formulario de tareas y colocarlas en una clase de controlador. Entonces puedo usar esa clase desde el formulario principal y desde el formulario de tareas, y solo cargar el formulario de tareas cuando lo necesito visible para el usuario. Sin embargo, si es fácil cargar el formulario sin mostrarlo, sería un cambio menor.

Respuestas a la pregunta(8)

Su respuesta a la pregunta