/// <summary> /// Méthode unique de création et d'affichage de la boîte de dialogue /// </summary> /// <param name="owner">null ou fenêtre relativement à laquelle aficher le dialogue</param> /// <param name="detailed">si true, affichage détaillé à l'ouverture de la boîte</param> /// <param name="caption">intitulé à faire figurer dans la barre de titre</param> /// <param name="message">message additionnel à afficher avec le message d'exception</param> /// <param name="exception">objet exception à afficher</param> /// <param name="buttons">boutons à afficher dans la boîte de dialogue</param> /// <param name="icon">icône décorative à afficher dans la boîte de dialogue</param> /// <returns>le code de conclusion du dialogue</returns> protected static DialogResult DoShow( IWin32Window owner, bool detailed, string caption, string message, Exception exception, ExceptionBoxButton buttons, ExceptionBoxIcon icon ) { using ( ExceptionBox box = new ExceptionBox() ) { box.SetData( detailed, caption, message, exception, buttons, icon ); return box.ShowDialog( owner ); } }
/// <summary> /// Prépare la boîte de dialogue selon les paramètres /// </summary> /// <param name="detailed">si true, affichage détaillé à l'ouverture de la boîte</param> /// <param name="caption">intitulé de la boîte de dialogue</param> /// <param name="message">message additionnel à afficher avant le message de l'objet exception</param> /// <param name="exception">objet exception à afficher</param> /// <param name="buttons">détermine quels sont les boutons à afficher (Details et Ok par défaut)</param> /// <param name="icon">détermine l'icône à afficher (Error, par défaut)</param> public void SetData( bool detailed, string caption, string message, Exception exception, ExceptionBoxButton buttons, ExceptionBoxIcon icon ) { this.Text = caption == null || caption == string.Empty ? "Exception" : caption; this.exception = exception; DoSetButtons( buttons ); DoSetIcon( icon ); DoSetMessage( message ); btShowDetails.Enabled = exception != null; if ( detailed ) DoToggleDetails(); Width = ExceptionBox.lastWidth; DoResizeBox(); }
/// <summary> /// Réaliser le dialogue modal d'affichage d'une exception /// </summary> /// <param name="owner">fenêtre propriétaire du dialogue (si null, fenêtre active)</param> /// <param name="exception">objet exception à afficher</param> /// <param name="caption">intitulé de la boîte de dialogue</param> /// <param name="message">message additionnel à afficher avant le message de l'objet exception</param> /// <param name="buttons">détermine quels sont les boutons à afficher (Details et Ok par défaut)</param> /// <param name="icon">détermine l'icône à afficher (Error, par défaut)</param> /// <param name="detailed">si true, affichage détaillé à l'ouverture de la boîte</param> /// <returns>le code de conclusion du dialogue</returns> public static DialogResult Show( IWin32Window owner, Exception exception, string caption, string message, ExceptionBoxButton buttons, ExceptionBoxIcon icon, bool detailed ) { return DoShow( owner, detailed, caption, message, exception, buttons, icon ); }
/// <summary> /// Prise en charge de la détermination des boutons à afficher /// </summary> /// <param name="buttons">vecteur de flags des boutons à afficher</param> private void DoSetButtons( ExceptionBoxButton buttons ) { btShowDetails.Visible = (buttons & ExceptionBoxButton.Details) != 0; btOk.Visible = (buttons & ExceptionBoxButton.OK) != 0; }
/// <summary> /// Réaliser le dialogue modal d'affichage d'une exception /// </summary> /// <param name="exception">objet exception à afficher</param> /// <param name="caption">intitulé de la boîte de dialogue</param> /// <param name="message">message additionnel à afficher avant le message de l'objet exception</param> /// <param name="buttons">détermine quels sont les boutons à afficher (Details et Ok par défaut)</param> /// <param name="icon">détermine l'icône à afficher (Error, par défaut)</param> /// <returns>le code de conclusion du dialogue</returns> public static DialogResult Show( Exception exception, string caption, string message, ExceptionBoxButton buttons, ExceptionBoxIcon icon ) { return DoShow( null, false, caption, message, exception, buttons, icon ); }