示例#1
0
        public MessageForm(MessageFormType type, string message, string caption, ExceptionInfo exceptionInfo, MessageBoxButtons buttons, string[] attachedFilePathes, MessageFormSettings settingsOverrides)
        {
            var defaultSettings = DefaultMessageFormSettingsProvider.GetDefaultMessageFormSettings();

            _settings           = MessageFormSettings.Merge(settingsOverrides, defaultSettings);
            _messageData        = CreateMessageFormData(type, message, caption, exceptionInfo, _settings);
            _buttons            = buttons;
            _attachedFilePathes = attachedFilePathes;

            InitializeComponent();

            this.Text = _messageData.Title;
            this.SetMessage(_messageData.DisplayText);
            this.SetIcon(type);

            switch (_messageData.MessageType)
            {
            case MessageFormType.Error:
            case MessageFormType.Warning:
                this.ShowErrorDetails();
                break;
            }

            this.InitializeButtons(type, buttons);
            this.ResizeView(_messageData.DisplayText);
        }
        public MessageForm(MessageFormType type, string message, string caption, ExceptionInfo exceptionInfo, MessageBoxButtons buttons, string[] attachedFilePathes, MessageFormSettings settingsOverrides)
        {
            var defaultSettings = DefaultMessageFormSettingsProvider.GetDefaultMessageFormSettings();
            _settings = MessageFormSettings.Merge(settingsOverrides, defaultSettings);
            _messageData = CreateMessageFormData(type, message, caption, exceptionInfo, _settings);
            _buttons = buttons;
            _attachedFilePathes = attachedFilePathes;

            InitializeComponent();

            this.Text = _messageData.Title;
            this.SetMessage(_messageData.DisplayText);
            this.SetIcon(type);

            switch (_messageData.MessageType)
            {
                case MessageFormType.Error:
                case MessageFormType.Warning:
                    this.ShowErrorDetails();
                    break;
            }

            this.InitializeButtons(type, buttons);
            this.ResizeView(_messageData.DisplayText);
        }
示例#3
0
 public static DialogResult ShowMessage(MessageFormType type, string message, string caption, ExceptionInfo exceptionInfo, MessageBoxButtons buttons, string[] attachedFilePathes, MessageFormSettings settings)
 {
     using (var view = new MessageForm(type, message, caption, exceptionInfo, buttons, attachedFilePathes, settings))
     {
         TraceMessageData(type, view._messageData);
         var result = view.ShowDialog();
         return(result);
     }
 }
示例#4
0
        private static void TraceMessageData(MessageFormType type, MessageFormData messageData)
        {
            if (messageData == null)
            {
                return;
            }

            if (type == MessageFormType.Error)
            {
                var messageDataXml = MessageFormData.SerializeToXml(messageData);
                Trace.TraceError(messageDataXml);
            }
            else if (type == MessageFormType.Warning)
            {
                var messageDataXml = MessageFormData.SerializeToXml(messageData);
                Trace.TraceWarning(messageDataXml);
            }
        }
示例#5
0
 /// <summary>
 /// Sets the properties.
 /// </summary>
 /// <param name="message">Message string.</param>
 /// <param name="type">Type of message</param>
 public MessageForm(string message, MessageFormType type)
 {
     InitializeComponent();
     this.messageLabel.Text = message;
     if (type == MessageFormType.Error)
     {
         Image errorImage = Properties.Resources.exclamationMark;
         this.signPictureBox.BackgroundImage = errorImage;
         titleLabel.Text = "Error";
         System.Media.SystemSounds.Hand.Play();
     }
     else
     {
         Image informationImage = Properties.Resources.informationMark;
         this.signPictureBox.BackgroundImage = informationImage;
         titleLabel.Text = "Information";
         System.Media.SystemSounds.Beep.Play();
     }
 }
示例#6
0
        private void SetIcon(MessageFormType type)
        {
            switch (type)
            {
            case MessageFormType.Error:
                pictureBox.Image = Properties.Resources.resErrorImage;
                break;

            case MessageFormType.Warning:
                pictureBox.Image = Properties.Resources.resWarningImage;
                break;

            case MessageFormType.Information:
            case MessageFormType.Question:
                pictureBox.Image = Properties.Resources.resInfoImage;
                break;

            default:
                throw new NotSupportedException();
            }
        }
示例#7
0
        private static MessageFormData CreateMessageFormData(MessageFormType type, string message, string caption, ExceptionInfo exceptionInfo, MessageFormSettings settingsOverrides)
        {
            var messageData = new MessageFormData
            {
                MessageType     = type,
                EnvironmentInfo = EnvironmentInfo.GetEnvironmentInfo(),
                ExceptionInfo   = exceptionInfo,
            };

            if (!string.IsNullOrEmpty(message))
            {
                messageData.DisplayText = message;
            }
            else
            {
                if (exceptionInfo != null && !string.IsNullOrEmpty(exceptionInfo.Message))
                {
                    messageData.DisplayText = exceptionInfo.Message;
                }
                else
                {
                    messageData.DisplayText = settingsOverrides.DefaultDisplayText;
                }
            }

            if (!string.IsNullOrEmpty(caption))
            {
                messageData.Title = caption;
            }
            else
            {
                messageData.Title = messageData.EnvironmentInfo.ProductName;
            }

            return(messageData);
        }
 public static DialogResult ShowMessage(MessageFormType type, string message, string caption, ExceptionInfo exceptionInfo)
 {
     return ShowMessage(type, message, caption, exceptionInfo, DEFAULT_BUTTONS, null, new MessageFormSettings());
 }
 private void SetIcon(MessageFormType type)
 {
     switch (type)
     {
         case MessageFormType.Error:
             pictureBox.Image = Properties.Resources.resErrorImage;
             break;
         case MessageFormType.Warning:
             pictureBox.Image = Properties.Resources.resWarningImage;
             break;
         case MessageFormType.Information:
         case MessageFormType.Question:
             pictureBox.Image = Properties.Resources.resInfoImage;
             break;
         default:
             throw new NotSupportedException();
     }
 }
        private void InitializeButtons(MessageFormType type, MessageBoxButtons buttons)
        {
            this.btnCopy.Visible = !_settings.HideCopyButton;
            this.btnCopy.Text = _settings.CopyButtonText;

            switch (_messageData.MessageType)
            {
                case MessageFormType.Error:
                case MessageFormType.Warning:
                    this.btnDetails.Visible = !_settings.HideDetailsButton;
                    this.btnDetails.Text = _settings.DetailsButtonText;
                    break;
                default:
                    this.btnDetails.Visible = false;
                    break;
            }

            switch (buttons)
            {
                case MessageBoxButtons.OKCancel:
                    {
                        var btnOK = new Button
                        {
                            Text = _settings.OkButtonText,
                            TabIndex = 1
                        };
                        var btnCancel = new Button
                        {
                            Text = _settings.CancelButtonText,
                            TabIndex = 2
                        };

                        btnOK.Click +=
                        (s, e) =>
                        {
                            DialogResult = DialogResult.OK;
                            Close();
                        };
                        btnCancel.Click +=
                        (s, e) =>
                        {
                            DialogResult = DialogResult.Cancel;
                            Close();
                        };

                        flpButtons.Controls.Add(btnCancel);
                        flpButtons.Controls.Add(btnOK);

                        this.AcceptButton = btnOK;
                        this.CancelButton = btnCancel;
                    }
                    break;

                case MessageBoxButtons.RetryCancel:
                    {
                        var btnRetry = new Button
                        {
                            Text = _settings.RetryButtonText,
                            TabIndex = 1
                        };
                        var btnCancel = new Button
                        {
                            Text = _settings.CancelButtonText,
                            AutoSize = true,
                            TabIndex = 2
                        };

                        btnRetry.Click +=
                        (s, e) =>
                        {
                            DialogResult = DialogResult.Yes;
                            Close();
                        };
                        btnCancel.Click +=
                        (s, e) =>
                        {
                            DialogResult = DialogResult.No;
                            Close();
                        };

                        flpButtons.Controls.Add(btnCancel);
                        flpButtons.Controls.Add(btnRetry);

                        this.AcceptButton = btnRetry;
                        this.CancelButton = btnCancel;
                    }
                    break;

                case MessageBoxButtons.AbortRetryIgnore:
                    {
                        var btnAbort = new Button
                        {
                            Text = _settings.AbortButtonText,
                            AutoSize = true,
                            TabIndex = 1
                        };
                        var btnRetry = new Button
                        {
                            Text = _settings.RetryButtonText,
                            AutoSize = true,
                            TabIndex = 2
                        };
                        var btnIgnore = new Button
                        {
                            Text = _settings.IgnoreButtonText,
                            AutoSize = true,
                            TabIndex = 3
                        };

                        btnAbort.Click +=
                        (s, e) =>
                        {
                            DialogResult = DialogResult.Yes;
                            Close();
                        };
                        btnRetry.Click +=
                        (s, e) =>
                        {
                            DialogResult = DialogResult.No;
                            Close();
                        };
                        btnIgnore.Click +=
                        (s, e) =>
                        {
                            DialogResult = DialogResult.Cancel;
                            Close();
                        };

                        flpButtons.Controls.Add(btnIgnore);
                        flpButtons.Controls.Add(btnRetry);
                        flpButtons.Controls.Add(btnAbort);

                        this.AcceptButton = btnAbort;
                        this.CancelButton = btnIgnore;
                    }
                    break;

                case MessageBoxButtons.YesNoCancel:
                    {
                        var btnYes = new Button
                        {
                            Text = _settings.YesButtonText,
                            TabIndex = 1
                        };
                        var btnNo = new Button
                        {
                            Text = _settings.NoButtonText,
                            TabIndex = 2
                        };
                        var btnCancel = new Button
                        {
                            Text = _settings.CancelButtonText,
                            TabIndex = 3
                        };

                        btnYes.Click +=
                        (s, e) =>
                        {
                            DialogResult = DialogResult.Yes;
                            Close();
                        };
                        btnNo.Click +=
                        (s, e) =>
                        {
                            DialogResult = DialogResult.No;
                            Close();
                        };
                        btnCancel.Click +=
                        (s, e) =>
                        {
                            DialogResult = DialogResult.Cancel;
                            Close();
                        };

                        flpButtons.Controls.Add(btnCancel);
                        flpButtons.Controls.Add(btnNo);
                        flpButtons.Controls.Add(btnYes);

                        this.AcceptButton = btnYes;
                        this.CancelButton = btnCancel;
                    }
                    break;

                case MessageBoxButtons.YesNo:
                    {
                        var btnYes = new Button
                        {
                            Text = _settings.YesButtonText,
                            TabIndex = 1
                        };
                        var btnNo = new Button
                        {
                            Text = _settings.NoButtonText,
                            TabIndex = 2
                        };

                        btnYes.Click +=
                        (s, e) =>
                        {
                            DialogResult = DialogResult.Yes;
                            Close();
                        };
                        btnNo.Click +=
                        (s, e) =>
                        {
                            DialogResult = DialogResult.No;
                            Close();
                        };

                        flpButtons.Controls.Add(btnNo);
                        flpButtons.Controls.Add(btnYes);

                        this.AcceptButton = btnYes;
                        this.CancelButton = btnNo;
                    }
                    break;

                case MessageBoxButtons.OK:
                default:
                    {
                        var btnOK = new Button
                        {
                            Text = _settings.OkButtonText,
                            TabIndex = 1
                        };

                        btnOK.Click +=
                        (s, e) =>
                        {
                            DialogResult = DialogResult.OK;
                            Close();
                        };

                        flpButtons.Controls.Add(btnOK);

                        this.AcceptButton = btnOK;
                        this.CancelButton = btnOK;
                    }
                    break;
            }

            ((Button)AcceptButton).Select();
        }
        private static void TraceMessageData(MessageFormType type, MessageFormData messageData)
        {
            if (messageData == null)
            {
                return;
            }

            if (type == MessageFormType.Error)
            {
                var messageDataXml = MessageFormData.SerializeToXml(messageData);
                Trace.TraceError(messageDataXml);
            }
            else if (type == MessageFormType.Warning)
            {
                var messageDataXml = MessageFormData.SerializeToXml(messageData);
                Trace.TraceWarning(messageDataXml);
            }
        }
        private static MessageFormData CreateMessageFormData(MessageFormType type, string message, string caption, ExceptionInfo exceptionInfo, MessageFormSettings settingsOverrides)
        {
            var messageData = new MessageFormData
            {
                MessageType = type,
                EnvironmentInfo = EnvironmentInfo.GetEnvironmentInfo(),
                ExceptionInfo = exceptionInfo,
            };

            if (!string.IsNullOrEmpty(message))
            {
                messageData.DisplayText = message;
            }
            else
            {
                if (exceptionInfo != null && !string.IsNullOrEmpty(exceptionInfo.Message))
                {
                    messageData.DisplayText = exceptionInfo.Message;
                }
                else
                {
                    messageData.DisplayText = settingsOverrides.DefaultDisplayText;
                }
            }

            if (!string.IsNullOrEmpty(caption))
            {
                messageData.Title = caption;
            }
            else
            {
                messageData.Title = messageData.EnvironmentInfo.ProductName;
            }

            return messageData;
        }
示例#13
0
 public static DialogResult ShowMessage(MessageFormType type, string message, string caption)
 {
     return(ShowMessage(type, message, caption, null, DEFAULT_BUTTONS, null, new MessageFormSettings()));
 }
示例#14
0
        private void InitializeButtons(MessageFormType type, MessageBoxButtons buttons)
        {
            this.btnCopy.Visible = !_settings.HideCopyButton;
            this.btnCopy.Text    = _settings.CopyButtonText;

            switch (_messageData.MessageType)
            {
            case MessageFormType.Error:
            case MessageFormType.Warning:
                this.btnDetails.Visible = !_settings.HideDetailsButton;
                this.btnDetails.Text    = _settings.DetailsButtonText;
                break;

            default:
                this.btnDetails.Visible = false;
                break;
            }


            switch (buttons)
            {
            case MessageBoxButtons.OKCancel:
            {
                var btnOK = new Button
                {
                    Text     = _settings.OkButtonText,
                    TabIndex = 1
                };
                var btnCancel = new Button
                {
                    Text     = _settings.CancelButtonText,
                    TabIndex = 2
                };

                btnOK.Click +=
                    (s, e) =>
                {
                    DialogResult = DialogResult.OK;
                    Close();
                };
                btnCancel.Click +=
                    (s, e) =>
                {
                    DialogResult = DialogResult.Cancel;
                    Close();
                };

                flpButtons.Controls.Add(btnCancel);
                flpButtons.Controls.Add(btnOK);

                this.AcceptButton = btnOK;
                this.CancelButton = btnCancel;
            }
            break;

            case MessageBoxButtons.RetryCancel:
            {
                var btnRetry = new Button
                {
                    Text     = _settings.RetryButtonText,
                    TabIndex = 1
                };
                var btnCancel = new Button
                {
                    Text     = _settings.CancelButtonText,
                    AutoSize = true,
                    TabIndex = 2
                };

                btnRetry.Click +=
                    (s, e) =>
                {
                    DialogResult = DialogResult.Yes;
                    Close();
                };
                btnCancel.Click +=
                    (s, e) =>
                {
                    DialogResult = DialogResult.No;
                    Close();
                };

                flpButtons.Controls.Add(btnCancel);
                flpButtons.Controls.Add(btnRetry);

                this.AcceptButton = btnRetry;
                this.CancelButton = btnCancel;
            }
            break;

            case MessageBoxButtons.AbortRetryIgnore:
            {
                var btnAbort = new Button
                {
                    Text     = _settings.AbortButtonText,
                    AutoSize = true,
                    TabIndex = 1
                };
                var btnRetry = new Button
                {
                    Text     = _settings.RetryButtonText,
                    AutoSize = true,
                    TabIndex = 2
                };
                var btnIgnore = new Button
                {
                    Text     = _settings.IgnoreButtonText,
                    AutoSize = true,
                    TabIndex = 3
                };

                btnAbort.Click +=
                    (s, e) =>
                {
                    DialogResult = DialogResult.Yes;
                    Close();
                };
                btnRetry.Click +=
                    (s, e) =>
                {
                    DialogResult = DialogResult.No;
                    Close();
                };
                btnIgnore.Click +=
                    (s, e) =>
                {
                    DialogResult = DialogResult.Cancel;
                    Close();
                };

                flpButtons.Controls.Add(btnIgnore);
                flpButtons.Controls.Add(btnRetry);
                flpButtons.Controls.Add(btnAbort);

                this.AcceptButton = btnAbort;
                this.CancelButton = btnIgnore;
            }
            break;

            case MessageBoxButtons.YesNoCancel:
            {
                var btnYes = new Button
                {
                    Text     = _settings.YesButtonText,
                    TabIndex = 1
                };
                var btnNo = new Button
                {
                    Text     = _settings.NoButtonText,
                    TabIndex = 2
                };
                var btnCancel = new Button
                {
                    Text     = _settings.CancelButtonText,
                    TabIndex = 3
                };

                btnYes.Click +=
                    (s, e) =>
                {
                    DialogResult = DialogResult.Yes;
                    Close();
                };
                btnNo.Click +=
                    (s, e) =>
                {
                    DialogResult = DialogResult.No;
                    Close();
                };
                btnCancel.Click +=
                    (s, e) =>
                {
                    DialogResult = DialogResult.Cancel;
                    Close();
                };

                flpButtons.Controls.Add(btnCancel);
                flpButtons.Controls.Add(btnNo);
                flpButtons.Controls.Add(btnYes);

                this.AcceptButton = btnYes;
                this.CancelButton = btnCancel;
            }
            break;

            case MessageBoxButtons.YesNo:
            {
                var btnYes = new Button
                {
                    Text     = _settings.YesButtonText,
                    TabIndex = 1
                };
                var btnNo = new Button
                {
                    Text     = _settings.NoButtonText,
                    TabIndex = 2
                };

                btnYes.Click +=
                    (s, e) =>
                {
                    DialogResult = DialogResult.Yes;
                    Close();
                };
                btnNo.Click +=
                    (s, e) =>
                {
                    DialogResult = DialogResult.No;
                    Close();
                };

                flpButtons.Controls.Add(btnNo);
                flpButtons.Controls.Add(btnYes);

                this.AcceptButton = btnYes;
                this.CancelButton = btnNo;
            }
            break;

            case MessageBoxButtons.OK:
            default:
            {
                var btnOK = new Button
                {
                    Text     = _settings.OkButtonText,
                    TabIndex = 1
                };

                btnOK.Click +=
                    (s, e) =>
                {
                    DialogResult = DialogResult.OK;
                    Close();
                };

                flpButtons.Controls.Add(btnOK);

                this.AcceptButton = btnOK;
                this.CancelButton = btnOK;
            }
            break;
            }

            ((Button)AcceptButton).Select();
        }
 public static DialogResult ShowMessage(MessageFormType type, string message, string caption, ExceptionInfo exceptionInfo, MessageBoxButtons buttons)
 {
     return ShowMessage(type, message, caption, exceptionInfo, buttons, null, new MessageFormSettings());
 }
 public static DialogResult ShowMessage(MessageFormType type, string message, string caption, ExceptionInfo exceptionInfo, MessageBoxButtons buttons, string[] attachedFilePathes, MessageFormSettings settings)
 {
     using (var view = new MessageForm(type, message, caption, exceptionInfo, buttons, attachedFilePathes, settings))
     {
         TraceMessageData(type, view._messageData);
         var result = view.ShowDialog();
         return result;
     }
 }
示例#17
0
 public static DialogResult ShowMessage(MessageFormType type, string message, string caption, ExceptionInfo exceptionInfo, MessageBoxButtons buttons)
 {
     return(ShowMessage(type, message, caption, exceptionInfo, buttons, null, new MessageFormSettings()));
 }