Chcę przechwytywać zdarzenia zamykające okno edytora (kartę) w IDE Visual Studio 2008. Gdy używam dte2.Application.Events.get_CommandEvents (NULL, 0) .BeforeExecute pomyślnie złapanych takie wydarzenia:Zdarzenie zamknięcia okna przechwytywania
- plik.close
- File.CloseAllButThis
- File.Exit
- Window.CloseDocumentWindow i inne.
Jeśli kod w oknie nie jest akceptowalny, zatrzymuję zdarzenie (CancelDefault = true).
Ale jeśli kliknę przycisk "X" po prawej stronie, "Zapisz zmiany"; pojawi się okno dialogowe, zakładka z zamknięciem okna edytora i nie mam żadnych przechwyconych zdarzeń. W takim przypadku mogę przechwycić zdarzenie WindowClosing, , ale nie można anulować zdarzenia.
Czy można obsłużyć przycisk "x", kliknij i zatrzymaj wydarzenie?
Po kliknięciu "X", ale "Zapisz zmiany" nie pojawi się, czy problem nadal występuje? –
Czy istnieje powód, dla którego nie przeprowadza się sprawdzania poprawności i innych metod w oknie dialogowym "Zapisz zmiany"? Często zdarza się, że zdarzenia zamknięcia okna sprawdzają zmiany i rozpoczynają monit "Zapisz zmiany". Metoda "Zapisz zmiany" zwróci wartość "prawda", jeśli sprawdzanie poprawności będzie poprawne, a operacja zapisu się powiedzie, lub "fałsz", jeśli sprawdzanie poprawności nie powiodło się ... Wtedy ta wartość zostanie wysłana z powrotem do procedury obsługi zdarzeń zamykania okna True, aby kontynuować i zamknąć okno lub Fałsz, aby je odrzucić i nic nie robić. – ewall