Je souhaite capturer des événements qui ferment la fenêtre de l'éditeur (onglet) dans l'IDE de Visual Studio 2008. Lors de l'utilisation dte2.Application.Events.get_CommandEvents (NULL, 0) .BeforeExecute I capturés avec succès de tels événements:Événement de fermeture de la fenêtre de capture
- file.close
- File.CloseAllButThis
- File.Exit
- Window.CloseDocumentWindow et autres.
Si le code dans la fenêtre n'est pas acceptable, j'arrête l'événement (CancelDefault = true).
Mais si je clique sur le bouton "X" sur le côté droit, "Enregistrer les modifications"; la boîte de dialogue apparaît, l'onglet ferme la fenêtre de l'éditeur et je n'ai aucun événement capturé. Dans ce cas, je peux capturer événement WindowClosing, mais ne peut pas annuler l'événement.
Est-il poosible de gérer "x" cliquez sur le bouton et arrêter l'événement?
Si vous cliquez sur "X", mais que "Enregistrer les modifications" n'apparaît pas, le problème persiste-t-il? –
Y a-t-il une raison pour laquelle vous ne faites pas la validation, par exemple, dans les méthodes de dialogue "Enregistrer les modifications"? Généralement, les événements de fermeture de fenêtre vérifient les modifications et lancent une invite «Enregistrer les modifications». La méthode "Save Changes" retournerait alors True si la validation était bonne et que la sauvegarde était réussie, ou False si la validation échouait ... Ensuite, cette valeur serait renvoyée au gestionnaire d'événement window-close, True pour aller de l'avant et se fermer la fenêtre ou Faux pour le rejeter et ne rien faire. – ewall