Visuellement supprimer/désactiver le bouton fermer de la barre de titre .NET
Il m'a été demandé de supprimer ou de désactiver le bouton de fermeture de notre VB .NET 2005 application MDI. Il n'existe pas de propriétés natives sur un formulaire qui vous permettent de griser le bouton de fermeture de sorte que l'utilisateur ne peut pas la fermer, et je ne me souviens pas de voir quoi que ce soit dans la classe de formulaire qui va me permettre de faire cela.
Est là peut-être un appel d'API ou de la magie de propriété pour définir ou de la fonction à appeler .NET 2005 ou plus tard, pour ce faire?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Plus d'informations:
J'ai besoin de maintenir le minimiser/maximiser la fonctionnalité de
J'ai besoin de conserver l'original de la barre de titre parce que la forme du dessin, de méthodes sont déjà très complexe.
Vous devez vous connecter pour publier un commentaire.
Sur la base des dernières informations que vous avez ajouté à votre question, passez à la fin de ma réponse.
C'est ce que vous avez besoin de mettre à false: Forme.Propriété ControlBox
MAIS, vous perdrez les boutons réduire et agrandir ainsi que le menu de l'application (en haut à gauche).
Comme une alternative, remplacer OnClose et définir Annuler pour vrai (exemple en C#):
Si aucune de ces solutions sont acceptables, et vous devez désactiver le bouton de fermeture, vous pouvez aller pinvoke/createparams route:
Comment désactiver le bouton de fermeture de fenêtre de formulaire à l'aide .NET application
C'est la version de visual basic de jdm code:
Vous pouvez désactiver le bouton de fermeture et la fermeture de l'élément de menu dans le menu système en changeant la "classe de style" de la fenêtre. Ajoutez le code suivant à votre formulaire:
Ce ne sera pas tout simplement arrêter la fenêtre à partir de l'obtention fermé, mais il fait gris le bouton. Il s'agit de C#, mais je pense qu'il devrait être facile à traduire dans VB.
Voici une méthode simple pour supprimer le bouton fermer:
1. Sélectionnez le Formulaire
2. Maintenant, allez à
Properties
.3. Trouver
ControlBox
et modifiez la valeur àFalse
.Cela permettra d'éliminer tous les Boutons de Contrôle (par exemple, Minimiser, Maximiser, Sortie) et aussi l'icône qui se trouve dans le coin gauche en avant le titre.
Vous devriez être en mesure de remplacer l'événement OnClose de la forme. Ce qui est commun lorsqu'une application se réduit dans la barre d'état Système lorsque "fermé".
Lorsque vous appuyez sur le X à cocher sur le formulaire.
Le
Form1_Closing
est faite en premier, puis leForm1_Closed
est fait.La
e.Cancel = True
dans leForm1_Closing
- empêcheForm1_Closed
d'être appelé par conséquent, en laissant votre forme toujours actif.Empêcher de fermer le formulaire, mais le cacher:
Vous pouvez définir la
ControlBox
propriétéFalse
, mais l'ensemble de la barre de titre aura disparu, mais le titre lui-même...Ce jmweb dit ici est OK aussi. Le X bouton fermer de ne pas aller si vous annulez l'événement sur le formulaire de clôture. Mais ce faisant, vous devez libérer les processus de la forme et de la fermeture de la forme.
Cela a fonctionné pour moi, en utilisant le Menu de la Bande.
Sélectionnez (ou sur) le formulaire lui-même
Cliquez sur les événements dans la fenêtre de propriété (la petite icône en forme d'éclair).
Recherchez
Form.Closing
et double cliquez dessus.Ensuite, tapez:
e.cancel=true
Faire un Formulaire sans barre de titre dans Visual Basic.
Aller à
Form Properties
et de définir à la foisControlBox
etShowIcon
à false.Ensuite, désactivez tous le texte à partir de la forme du
text
propriété.allez sur propriétés et sélectionnez ennuyer style comme aucun
Il suffit de sélectionner la forme et dans la section propriétés, définissez controlBox = false
Que juste a fonctionné pour moi 🙂