Maison > développement back-end > C++ > Comment démarrer une application WinForms réduite dans la barre d'état système sans artefacts ?

Comment démarrer une application WinForms réduite dans la barre d'état système sans artefacts ?

Mary-Kate Olsen
Libérer: 2025-01-06 04:55:39
original
897 Les gens l'ont consulté

How to Start a WinForms App Minimized to the System Tray Without Artifacts?

Démarrage d'une application WinForm réduite dans la barre d'état

Lors de la création d'une application WinForm qui est réduite dans la barre d'état, vous pouvez rencontrer des problèmes pour démarrer l'application minimisé. Cela peut entraîner des artefacts visibles dans la barre de titre ou un comportement inapproprié lors du lancement de l'application.

Problème : l'application est réduite mais apparaît dans la tabulation Alt

Pour résoudre ce problème, modifiez le FormBorderStyle à l'une des options ToolWindow. Cependant, cela peut introduire un nouveau problème où la barre de titre devient temporairement visible lors du lancement de l'application réduite.

Solution : Remplacer SetVisibleCore()

L'approche recommandée pour démarrer le app minimisée sans aucun artefact visible consiste à remplacer la méthode SetVisibleCore(). Voici une implémentation :

protected override void SetVisibleCore(bool value) {
    if (!allowVisible) {
        value = false;
        if (!this.IsHandleCreated) CreateHandle();
    }
    base.SetVisibleCore(value);
}
Copier après la connexion

Dans cet exemple, l'indicateur allowVisible garantit que le formulaire n'est visible que lorsque l'utilisateur le demande explicitement.

Gérer le formulaire Fermeture

Pour éviter de fermer l'application depuis la barre des tâches ou l'onglet Alt lorsqu'elle est réduite, remplacez le Méthode OnFormClosing() :

protected override void OnFormClosing(FormClosingEventArgs e) {
    if (!allowClose) {
        this.Hide();
        e.Cancel = true;
    }
    base.OnFormClosing(e);
}
Copier après la connexion

L'indicateur allowClose garantit que le formulaire ne se ferme que lorsque l'utilisateur le demande explicitement.

Considérations supplémentaires

Notez que le L'événement Load ne se déclenche pas tant que le formulaire n'est pas affiché pour la première fois. Par conséquent, effectuez l'initialisation dans le constructeur du formulaire plutôt que dans le gestionnaire d'événements Load.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal