J'ai essayé de le faire en définissant Visible sur false ou en masquant dans le constructeur et dans l'événement OnLoad.
Aucun de ces paramètres n'a eu d'effet, car le formulaire est défini sur Visible une fois le formulaire créé et après le déclenchement de l'événement OnLoad dans SetVisibleCore.
La définition du masque masqué dans l'événement affiché fonctionne, mais le masque clignote sur l'écran pendant un instant.
Vous pouvez également remplacer SetVisibleCore et définir la valeur sur false, mais alors OnLoad n'est pas déclenché et certains des autres événements sont foirés, comme la fermeture de formulaire.
La meilleure solution à mon avis est de définir le formulaire à réduire et non affiché dans la barre des tâches avant d'appeler Application.Run().
Ainsi, au lieu de:
Application.Run(new MainForm());
faire:
MainForm form = new MainForm();
form.WindowState = FormWindowState.Minimized;
form.ShowInTaskbar = false;
Application.Run(form);
Ensuite, l'application fonctionnera avec tous les événements appropriés tiré (même OnShown) et la forme ne sera pas affiché.
Si vous souhaitez pouvoir masquer/afficher le formulaire comme d'habitude après cela, vous devez définir WindowState et ShowInTaskbar sur Normal et true.
Dans l'événement Affiché, vous pouvez redéfinir ShownInTaskbar sur true, puis masquer correctement le formulaire.
this.Shown += new System.EventHandler(this.MainFormShown);
...
void MainFormShown(object sender, EventArgs e)
{
this.ShowInTaskbar = true;
this.Visible = false;
}
Paramètres du WindowState Retour à la normale tandis que la forme est cachée n'a pas d'effet, vous aurez donc besoin de le faire après vous montrer à nouveau le formulaire, sinon l'icône être dans la barre des tâches mais le formulaire sera minimisé.
this.Show();
this.WindowState = FormWindowState.Normal;
double possible de [this.Visible ne fonctionne pas dans Windows Forms] (http: // stackoverflow. com/questions/3742709/this-visible-is-not-working-in-windows-forms) –