From Xojo Documentation

Class (inherits from Object)

Used to design and display customized message dialog boxes. Similar to the MsgBox function but the MessageDialog class is much more flexible.

ActionButton Explanation Title
AlternateActionButton Icon
CancelButton Message

ShowModal ShowModalWithin

Class Constants

The following class constants are used to specify the value of the Icon property.

Class Constant Description
GraphicNone No icon
GraphicNote The OS's Note icon or the application icon on macOS
GraphicCaution The OS's Caution icon. On macOS, the application icon superimposed on the Caution icon.
GraphicStop The OS's Stop icon. On macOS, the application icon.
GraphicQuestion The OS's Question icon. On macOS, the application icon.


A MessageDialog dialog can have up to three buttons, an icon, and main and subordinate text. On Windows and Linux, it can also have text in its title bar. By default, only the ActionButton's Visible property is True. To use any other buttons, you must set their Visible properties to True.


The four icons supported by MessageDialog are not the same on all platforms. In particular, macOS shows the generic application icon for the values of 0, 2, and 3.

The following series of screenshot shows the icons on the three platforms.

Note Caution Stop Question
Windows Note.jpg
Windows Caution.jpg
Windows Stop.jpg
Windows question.jpg
Mac note.jpg
Mac Caution.jpg
Mac note.jpg
Mac note.jpg

Handling the button click

After the user has clicked a button in the MessageDialog, the ShowModal method returns the MessageDialogButton that was pressed. You need to check this against the three types of MessageDialogButtons belonging to the MessageDialog to determine which button the user clicked. See the example.


The following example creates and manages a “Save Changes” dialog box without the need to create an instance of the Window class.

Dim d As New MessageDialog // declare the MessageDialog object
Dim b As MessageDialogButton // for handling the result
d.Icon = MessageDialog.GraphicCaution // display warning icon
d.ActionButton.Caption = "Save"
d.CancelButton.Visible = True // show the Cancel button
d.AlternateActionButton.Visible = True // show the "Don't Save" button
d.AlternateActionButton.Caption = "Don't Save"
d.Message = "Do you want to save changes to this document before closing?"
d.Explanation = "If you don't save, your changes will be lost. "

b = d.ShowModal // display the dialog
Select Case b // determine which button was pressed.
Case d.ActionButton
// user pressed Save
Case d.AlternateActionButton
// user pressed Don't Save
Case d.CancelButton
// user pressed Cancel
End Select

See Also

MsgBox function, MessageDialogButton, Window classes.