From Xojo Documentation

For web apps, see WebButton.

Class (inherits from RectControl)

A PushButton is the standard button used in desktop apps.

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


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.