Charger un formulaire sans le montrer

Version courte: je veux déclencher l'événement Form_Load() sans effectuer de la forme visible. Cela ne fonctionne pas car Show() ignore la valeur actuelle de la propriété Visible:

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

Version longue: j'ai une application WinForms avec deux formes: les principaux et les tâches. La forme principale est toujours affichée. L'utilisateur peut soit cliquer sur un bouton pour ouvrir le formulaire des tâches, ou cliquez sur quelques boutons qu'il suffit d'exécuter une tâche directement sans ouvrir le formulaire des tâches.

Lorsqu'un utilisateur demande pour exécuter une tâche directement, je voudrais simplement appeler certaines méthodes publiques sur le formulaire des tâches sans la montrer. Malheureusement, la tâche de la logique repose sur des trucs qui se passe dans l'événement Form_Load (). La seule façon que je peux trouver pour déclencher Form_Load() est d'appeler la méthode Show(). Le meilleur que j'ai pu faire est d'afficher le formulaire dans l'état réduit:

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

Je suppose que la solution la plus propre serait de tirer les tâches de la logique des tâches et dans une classe de contrôleur. Alors je peux utiliser cette classe à partir du formulaire principal et de l'tâches, et de charger uniquement les tâches de forme quand j'en ai besoin visibles pour l'utilisateur. Cependant, si c'est une chose facile à charger le formulaire sans l'afficher, ce serait un plus petit changement.

source d'informationauteur Don Kirkby