From Xojo Documentation

For web apps, see WebButton.

Class (inherits from RectControl)

A PushButton is the standard button used in desktop apps.

Action DropObject MouseEnter
Closing GotFocus MouseExit
ConstructContextualMenu Initialized MouseMove
ContextualMenuAction KeyDown MouseUp
DragEnter KeyUp MouseWheel
DragExit LostFocus
DragOver MouseDown
Active fa-lock-32.png Italic TabIndex
AllowAutoDeactivate Left TextFont
AllowTabStop LockBottom TextSize
Bold LockLeft TextUnit
ButtonStyle LockRight Top
Cancel LockTop Transparent
Caption MouseCursor TrueWindow fa-lock-32.png
Default MouseX fa-lock-32.png Underline
Enabled MouseY fa-lock-32.png Visible
Handle fa-lock-32.png Name Width
Height PanelIndex Window fa-lock-32.png
HelpTag Parent
Index fa-lock-32.png Scope fa-lock-32.png
AcceptFileDrop AddActionNotificationReceiver Push
AcceptPictureDrop Close Refresh
AcceptRawDataDrop DrawInto RemoveActionNotificationReceiver
AcceptTextDrop Invalidate SetFocus


To set an accelerator character, precede the character in the Caption with an ampersand. In order to show an ampersand in the Caption, use two ampersands in a row. The sets the accelerator to the "D" character:

Calculate &Data

The PushButton's Caption property can show a caption that uses an encoding that doesn't match the application’s region code (or while running within the IDE, the IDE's region code). For example, an English application can set a Japanese caption, as long as it first sets the button's TextFont to Osaka.

If your Pushbutton has a height greater than 22 pixels, on macOS it will not have the standard rounded appearance and will instead be drawn as a square button. This is a restriction of macOS.

Linux and Pi Button Height

On Linux and Pi you may find that the button height is not large enough to fit the text. This is because some themes will drastically increase the default font size for buttons causing it to exceed the size of the button. There are a couple things you can do to fix this. In the Open event of the PushButton you can choose to make the button larger:

Me.Height = 32

Or you can choose to make its font smaller:

Me.TextSize = 10

The above numbers are for example. You will want to adjust them as appropriate for the theme being used.

You can also look up the best size to use based on the theme by using Declares. Refer to this example project to see how it is done:


See Also

BevelButton, SegmentedControl controls; RectControl class.