En général, vous ne le ferez que si vous utilisez une icône de la barre d'état système ou une autre méthode pour afficher le formulaire plus tard, mais cela fonctionnera très bien même si vous n'affichez jamais votre formulaire principal.
Créez un bool dans votre classe de formulaire, dont la valeur par défaut est false :
private bool allowshowdisplay = false;
Remplacez ensuite la méthode SetVisibleCore.
protected override void SetVisibleCore(bool value)
{
base.SetVisibleCore(allowshowdisplay ? value : allowshowdisplay);
}
Étant donné que Application.Run() définit le formulaire .Visible = true après le chargement du formulaire, cette fonction l'intercepte et le définit comme false. Dans le cas ci-dessus, il le mettra toujours à false jusqu'à ce que vous l'activiez en définissant allowhowdisplay à true.
Cela empêchera le formulaire de s'afficher au démarrage. Vous devez maintenant réactiver le SetVisibleCore pour qu'il fonctionne correctement en définissant l'option allowhowdisplay = true. Vous voudrez faire cela sur n'importe quelle fonction de l'interface utilisateur qui affiche le formulaire. Dans mon exemple, il s'agit de l'événement de clic gauche dans mon objet notiyicon :
private void notifyIcon1_MouseClick(object sender, MouseEventArgs e)
{
if (e.Button == System.Windows.Forms.MouseButtons.Left)
{
this.allowshowdisplay = true;
this.Visible = !this.Visible;
}
}