2009-04-26 11 views
10

J'essaye de configurer mon application WPF de sorte que lorsqu'une exception ne soit pas gérée, une boîte de dialogue d'erreur apparaît. En bon vieux WinForms cela a été possible en ajoutantBoîte de dialogue de gestion des erreurs personnalisées WPF?

Application.ThreadException += new System.Threading.ThreadExceptionEventHandler(Application_ThreadException); 

à votre fichier Program.cs et montrant tout dialogue que vous vouliez dans le code de gestion des événements. Dans WPF J'ai essayé d'utiliser

app.Dispatcher.UnhandledException += new System.Windows.Threading.DispatcherUnhandledExceptionEventHandler(Dispatcher_UnhandledException); 

Cependant, quand je l'utilise Show() sur ma fenêtre personnalisée de gestion des erreurs, l'application va immédiatement « blahblah.exe a cessé de travailler ... » et se ferme. Si j'utilise ShowDialog(), la fenêtre est utilisable jusqu'à ce qu'elle soit fermée, puis le même dialogue "... a cessé de fonctionner ..." apparaît et meurt. Dans WinForms, il semble que la fermeture d'une boîte de dialogue d'erreur permettrait à l'application de continuer à fonctionner, en fonction de la gravité de l'exception. Je n'arrive pas à comprendre comment le faire correctement dans WPF.

Des idées?

Répondre

7

Vous devez définir Handled sur true dans EventArgs.

0

Dans le fichier Aplication.xaml.vb, ce fichier a de nombreuses façons d'aider les fichiers, storyborads et autres, vous avez besoin de quelque chose comme ça dans ce fichier. travaille pour moi, je l'espère pour vous à

Private Sub Application_DispatcherUnhandledException(ByVal sender As Object, ByVal e As System.Windows.Threading.DispatcherUnhandledExceptionEventArgs) Handles Me.DispatcherUnhandledException 

     Dim lWinError As New winError("Ocurrio un error no controlado en la aplicacion") 
     lWinError.ShowDialog() 
     e.Handled = True 
    End Sub 
Questions connexes