Search code examples
.netwpfmessagebox

YesNo MessageBox not closing when x-button clicked


When I open a MessageBox with options YesNo, the (usually) cancelling cross in the upper right is shown but has no effect.

System.Windows.MessageBox.Show("Really, really?", "Are you sure?", MessageBoxButton.YesNo);

If I offer YesNoCancel as options, clicking the cross closes the Dialog with DialogResult Cancel.

System.Windows.MessageBox.Show("Really, really?", "Are you sure?", MessageBoxButton.YesNoCancel);

I would have expected that the cross is "looking disabled" if not hidden at all, when clicking it has no effect. Probably I am not the first one observing this. What is your favorite way to hide/disable this button or workaround the issue?

Note: I would prefer a solution that does not use System.Windows.Forms, since I am dealing with WPF projects and would like to avoid any InterOp if possible.


Solution

  • The Close button (in MsgBox's title bar): Since the MsgBox window is a built-in feature of the operating system, its X button is enabled only when certain buttons are present. If there is only an OK button, clicking the X button is the same as pressing OK. Otherwise, the X button is disabled unless there is a Cancel button, in which case clicking the X is the same as pressing Cancel.

    http://www.autohotkey.com/docs/commands/MsgBox.htm

    Its the default behavior! from the time it was MsgBox to the time its MessageBox!