Distinguer les raisons de fermeture d'une Form [Résolu]

Signaler
Messages postés
171
Date d'inscription
vendredi 1 septembre 2006
Statut
Membre
Dernière intervention
14 novembre 2019
-
Whismeril
Messages postés
14125
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
26 janvier 2020
-
Bonjour,

Je n'arrive pas à distinguer si la cause de fermeture d'une Form provient d'un clic sur la ControlBox, des touches Alt-F4 ou du code (close())
Il s'agit d'une feuille MdiChild, dont la fermeture ne doit être provoquée que par la feuille mère. Comme j'ai besoin des boutons Min et Max, je ne peux pas masquer la ControlBox, sinon les deux autres boutons ne sont plus affichés.

En VB6, la raison de fermeture savait distinguer le clic sur le ControlBox et la fermeture par code.

En C#, les valeurs de CloseReason ont plus de valeurs, mais ne distinguent pas le code Close() du clic sur la ControlBox : j'ai testé, et les deux ramènent CloseReason=UserClosing.

Quelqu'un sait-il comment les distinguer, ou inhiber la ControlBox sans faire disparaître les bouton Minimize et Maximize ??

3 réponses

Messages postés
14125
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
26 janvier 2020
333
Bonsoir

ou tu masque la croix sans masquer les boutons min et max.
https://social.msdn.microsoft.com/Forums/fr-FR/e9cef548-7c7f-420a-a7df-6b072e47240a/masquer-la-croix-dans-un-form-normal

J'ai pas essayé
Messages postés
171
Date d'inscription
vendredi 1 septembre 2006
Statut
Membre
Dernière intervention
14 novembre 2019

J'avais trouvé la même chose sur le présent forum : https://codes-sources.commentcamarche.net/source/60062-desactiver-la-croix-de-fermeture-d-une-forme

Ça ne masque pas la croix, mais cela l'inhibe et la grise.

J'ai pas tout compris dans le principe, mais cela fonctionne et convient â ce que je veux faire.

Amitiés
MGD
Messages postés
14125
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
26 janvier 2020
333
Tant mieux, pense à marquer le sujet résolu.

Bonne journée