# Button class

Namespace: [Eto.Forms](https://eto.picoe.ca/api/namespace/eto.forms.md) · Assembly: [Eto](https://eto.picoe.ca/api/assembly/eto.md)

```cs
[Handler(Button.IHandler)]
public class Button : TextControl, IMnemonicControl
```

A standard button control.

**Example:**

```cs
var myButton = new Button
{
	Text = "This is my button!"
};
myButton.Clicked += (sender, e) => { Console.WriteLine("My button was clicked."); };
```

**Derived types:** [ToggleButton](https://eto.picoe.ca/api/type/eto.forms.togglebutton.md)

## Constructors

- [Button](https://eto.picoe.ca/api/type/eto.forms.button/ctor.md): (2 overloads) Initializes a new instance of the [Button](https://eto.picoe.ca/api/type/eto.forms.button.md) class.

## Properties

- [AlwaysShowMnemonic](https://eto.picoe.ca/api/type/eto.forms.button/alwaysshowmnemonic.md): Gets or sets whether the mnemonic character should always be shown, even if the user has not pressed the mnemonic key (e.g. Alt key on Windows)
- [Command](https://eto.picoe.ca/api/type/eto.forms.button/command.md): Gets or sets the command to invoke when the button is pressed.
- [CommandParameter](https://eto.picoe.ca/api/type/eto.forms.button/commandparameter.md): Gets or sets the parameter to pass to the [Button.Command](https://eto.picoe.ca/api/type/eto.forms.button/command.md) when executing or determining its [ICommand.CanExecute(object)](https://learn.microsoft.com/dotnet/api/system.windows.input.icommand.canexecute) state.
- [Height](https://eto.picoe.ca/api/type/eto.forms.button/height.md): Gets or sets the height of the control size.
- [Image](https://eto.picoe.ca/api/type/eto.forms.button/image.md): Gets or sets the image to display on the button.
- [ImageNextToText](https://eto.picoe.ca/api/type/eto.forms.button/imagenexttotext.md): Gets or sets a value indicating that the [Button.Image](https://eto.picoe.ca/api/type/eto.forms.button/image.md) should be placed directly next to the [TextControl.Text](https://eto.picoe.ca/api/type/eto.forms.textcontrol/text.md), instead of being aligned to the edge of the button.
- [ImagePosition](https://eto.picoe.ca/api/type/eto.forms.button/imageposition.md): Gets or sets the position of the image relative to the text.
- [MinimumSize](https://eto.picoe.ca/api/type/eto.forms.button/minimumsize.md): Gets or sets the minimum size for the button.
- [Size](https://eto.picoe.ca/api/type/eto.forms.button/size.md): Gets or sets the size of the control. Use -1 to specify auto sizing for either the width and/or height.
- [UseMnemonic](https://eto.picoe.ca/api/type/eto.forms.button/usemnemonic.md): Gets or sets whether the control should use mnemonics in the text (e.g. & character to indicate a mnemonic key)
- [Width](https://eto.picoe.ca/api/type/eto.forms.button/width.md): Gets or sets the width of the control size.

## Methods

- [GetCallback](https://eto.picoe.ca/api/type/eto.forms.button/getcallback.md): Gets an instance of an object used to perform callbacks to the widget from handler implementations
- [OnClick](https://eto.picoe.ca/api/type/eto.forms.button/onclick.md): Raises the [Button.Click](https://eto.picoe.ca/api/type/eto.forms.button/click.md) event.
- [PerformClick](https://eto.picoe.ca/api/type/eto.forms.button/performclick.md): Triggers the [Button.Click](https://eto.picoe.ca/api/type/eto.forms.button/click.md) event for the button, if the button is visible and enabled.
- [Unbind](https://eto.picoe.ca/api/type/eto.forms.button/unbind.md): Unbinds any bindings in the [BindableWidget.Bindings](https://eto.picoe.ca/api/type/eto.forms.bindablewidget/bindings.md) collection and removes the bindings

## Events

- [Click](https://eto.picoe.ca/api/type/eto.forms.button/click.md): Event to handle when the user clicks the button.

## Inherited Members

- From [TextControl](https://eto.picoe.ca/api/type/eto.forms.textcontrol.md): [Text](https://eto.picoe.ca/api/type/eto.forms.textcontrol/text.md), [TextBinding](https://eto.picoe.ca/api/type/eto.forms.textcontrol/textbinding.md), [TextColor](https://eto.picoe.ca/api/type/eto.forms.textcontrol/textcolor.md), [TextChanged](https://eto.picoe.ca/api/type/eto.forms.textcontrol/textchanged.md), [OnTextChanged](https://eto.picoe.ca/api/type/eto.forms.textcontrol/ontextchanged.md)
- From [CommonControl](https://eto.picoe.ca/api/type/eto.forms.commoncontrol.md): [Font](https://eto.picoe.ca/api/type/eto.forms.commoncontrol/font.md)
- From [Control](https://eto.picoe.ca/api/type/eto.forms.control.md): [AllowDrop](https://eto.picoe.ca/api/type/eto.forms.control/allowdrop.md), [BackgroundColor](https://eto.picoe.ca/api/type/eto.forms.control/backgroundcolor.md), [Bounds](https://eto.picoe.ca/api/type/eto.forms.control/bounds.md), [ContextMenu](https://eto.picoe.ca/api/type/eto.forms.control/contextmenu.md), [Cursor](https://eto.picoe.ca/api/type/eto.forms.control/cursor.md), [Enabled](https://eto.picoe.ca/api/type/eto.forms.control/enabled.md), [Gestures](https://eto.picoe.ca/api/type/eto.forms.control/gestures.md), [Handler](https://eto.picoe.ca/api/type/eto.forms.control/handler.md), [HasFocus](https://eto.picoe.ca/api/type/eto.forms.control/hasfocus.md), [IsAttached](https://eto.picoe.ca/api/type/eto.forms.control/isattached.md), [IsMouseCaptured](https://eto.picoe.ca/api/type/eto.forms.control/ismousecaptured.md), [IsSuspended](https://eto.picoe.ca/api/type/eto.forms.control/issuspended.md), [IsVisualControl](https://eto.picoe.ca/api/type/eto.forms.control/isvisualcontrol.md), [Loaded](https://eto.picoe.ca/api/type/eto.forms.control/loaded.md), [Location](https://eto.picoe.ca/api/type/eto.forms.control/location.md), [LogicalParent](https://eto.picoe.ca/api/type/eto.forms.control/logicalparent.md), [Parent](https://eto.picoe.ca/api/type/eto.forms.control/parent.md), [ParentWindow](https://eto.picoe.ca/api/type/eto.forms.control/parentwindow.md), [SupportedPlatformCommands](https://eto.picoe.ca/api/type/eto.forms.control/supportedplatformcommands.md), [TabIndex](https://eto.picoe.ca/api/type/eto.forms.control/tabindex.md), [TabStop](https://eto.picoe.ca/api/type/eto.forms.control/tabstop.md), [Tag](https://eto.picoe.ca/api/type/eto.forms.control/tag.md), [ToolTip](https://eto.picoe.ca/api/type/eto.forms.control/tooltip.md), [Visible](https://eto.picoe.ca/api/type/eto.forms.control/visible.md), [VisualControls](https://eto.picoe.ca/api/type/eto.forms.control/visualcontrols.md), [VisualParent](https://eto.picoe.ca/api/type/eto.forms.control/visualparent.md), [DragDrop](https://eto.picoe.ca/api/type/eto.forms.control/dragdrop.md), [DragEnd](https://eto.picoe.ca/api/type/eto.forms.control/dragend.md), [DragEnter](https://eto.picoe.ca/api/type/eto.forms.control/dragenter.md), [DragLeave](https://eto.picoe.ca/api/type/eto.forms.control/dragleave.md), [DragOver](https://eto.picoe.ca/api/type/eto.forms.control/dragover.md), [EnabledChanged](https://eto.picoe.ca/api/type/eto.forms.control/enabledchanged.md), [GotFocus](https://eto.picoe.ca/api/type/eto.forms.control/gotfocus.md), [KeyDown](https://eto.picoe.ca/api/type/eto.forms.control/keydown.md), [KeyUp](https://eto.picoe.ca/api/type/eto.forms.control/keyup.md), [Load](https://eto.picoe.ca/api/type/eto.forms.control/load.md), [LoadComplete](https://eto.picoe.ca/api/type/eto.forms.control/loadcomplete.md), [LostFocus](https://eto.picoe.ca/api/type/eto.forms.control/lostfocus.md), [MouseDoubleClick](https://eto.picoe.ca/api/type/eto.forms.control/mousedoubleclick.md), [MouseDown](https://eto.picoe.ca/api/type/eto.forms.control/mousedown.md), [MouseEnter](https://eto.picoe.ca/api/type/eto.forms.control/mouseenter.md), [MouseLeave](https://eto.picoe.ca/api/type/eto.forms.control/mouseleave.md), [MouseMove](https://eto.picoe.ca/api/type/eto.forms.control/mousemove.md), [MouseUp](https://eto.picoe.ca/api/type/eto.forms.control/mouseup.md), [MouseWheel](https://eto.picoe.ca/api/type/eto.forms.control/mousewheel.md), [PreLoad](https://eto.picoe.ca/api/type/eto.forms.control/preload.md), [Shown](https://eto.picoe.ca/api/type/eto.forms.control/shown.md), [SizeChanged](https://eto.picoe.ca/api/type/eto.forms.control/sizechanged.md), [TextInput](https://eto.picoe.ca/api/type/eto.forms.control/textinput.md), [ThemeChanged](https://eto.picoe.ca/api/type/eto.forms.control/themechanged.md), [UnLoad](https://eto.picoe.ca/api/type/eto.forms.control/unload.md), [ApplyStyles](https://eto.picoe.ca/api/type/eto.forms.control/applystyles.md), [AttachNative](https://eto.picoe.ca/api/type/eto.forms.control/attachnative.md), [CaptureMouse](https://eto.picoe.ca/api/type/eto.forms.control/capturemouse.md), [Detach](https://eto.picoe.ca/api/type/eto.forms.control/detach.md), [DetachNative](https://eto.picoe.ca/api/type/eto.forms.control/detachnative.md), [Dispose](https://eto.picoe.ca/api/type/eto.forms.control/dispose.md), [DoDragDrop](https://eto.picoe.ca/api/type/eto.forms.control/dodragdrop.md), [FindParent](https://eto.picoe.ca/api/type/eto.forms.control/findparent.md), [Focus](https://eto.picoe.ca/api/type/eto.forms.control/focus.md), [GetPreferredSize](https://eto.picoe.ca/api/type/eto.forms.control/getpreferredsize.md), [Invalidate](https://eto.picoe.ca/api/type/eto.forms.control/invalidate.md), [MapPlatformCommand](https://eto.picoe.ca/api/type/eto.forms.control/mapplatformcommand.md), [OnApplyCascadingStyles](https://eto.picoe.ca/api/type/eto.forms.control/onapplycascadingstyles.md), [OnDragDrop](https://eto.picoe.ca/api/type/eto.forms.control/ondragdrop.md), [OnDragEnd](https://eto.picoe.ca/api/type/eto.forms.control/ondragend.md), [OnDragEnter](https://eto.picoe.ca/api/type/eto.forms.control/ondragenter.md), [OnDragLeave](https://eto.picoe.ca/api/type/eto.forms.control/ondragleave.md), [OnDragOver](https://eto.picoe.ca/api/type/eto.forms.control/ondragover.md), [OnEnabledChanged](https://eto.picoe.ca/api/type/eto.forms.control/onenabledchanged.md), [OnGotFocus](https://eto.picoe.ca/api/type/eto.forms.control/ongotfocus.md), [OnKeyDown](https://eto.picoe.ca/api/type/eto.forms.control/onkeydown.md), [OnKeyUp](https://eto.picoe.ca/api/type/eto.forms.control/onkeyup.md), [OnLoad](https://eto.picoe.ca/api/type/eto.forms.control/onload.md), [OnLoadComplete](https://eto.picoe.ca/api/type/eto.forms.control/onloadcomplete.md), [OnLostFocus](https://eto.picoe.ca/api/type/eto.forms.control/onlostfocus.md), [OnMouseDoubleClick](https://eto.picoe.ca/api/type/eto.forms.control/onmousedoubleclick.md), [OnMouseDown](https://eto.picoe.ca/api/type/eto.forms.control/onmousedown.md), [OnMouseEnter](https://eto.picoe.ca/api/type/eto.forms.control/onmouseenter.md), [OnMouseLeave](https://eto.picoe.ca/api/type/eto.forms.control/onmouseleave.md), [OnMouseMove](https://eto.picoe.ca/api/type/eto.forms.control/onmousemove.md), [OnMouseUp](https://eto.picoe.ca/api/type/eto.forms.control/onmouseup.md), [OnMouseWheel](https://eto.picoe.ca/api/type/eto.forms.control/onmousewheel.md), [OnPreLoad](https://eto.picoe.ca/api/type/eto.forms.control/onpreload.md), [OnShown](https://eto.picoe.ca/api/type/eto.forms.control/onshown.md), [OnSizeChanged](https://eto.picoe.ca/api/type/eto.forms.control/onsizechanged.md), [OnStyleChanged](https://eto.picoe.ca/api/type/eto.forms.control/onstylechanged.md), [OnTextInput](https://eto.picoe.ca/api/type/eto.forms.control/ontextinput.md), [OnThemeChanged](https://eto.picoe.ca/api/type/eto.forms.control/onthemechanged.md), [OnUnLoad](https://eto.picoe.ca/api/type/eto.forms.control/onunload.md), [PointFromScreen](https://eto.picoe.ca/api/type/eto.forms.control/pointfromscreen.md), [PointToScreen](https://eto.picoe.ca/api/type/eto.forms.control/pointtoscreen.md), [Print](https://eto.picoe.ca/api/type/eto.forms.control/print.md), [RectangleFromScreen](https://eto.picoe.ca/api/type/eto.forms.control/rectanglefromscreen.md), [RectangleToScreen](https://eto.picoe.ca/api/type/eto.forms.control/rectangletoscreen.md), [ReleaseMouseCapture](https://eto.picoe.ca/api/type/eto.forms.control/releasemousecapture.md), [ResumeLayout](https://eto.picoe.ca/api/type/eto.forms.control/resumelayout.md), [SuspendLayout](https://eto.picoe.ca/api/type/eto.forms.control/suspendlayout.md), [TriggerStyleChanged](https://eto.picoe.ca/api/type/eto.forms.control/triggerstylechanged.md), [UpdateLayout](https://eto.picoe.ca/api/type/eto.forms.control/updatelayout.md)
- From [BindableWidget](https://eto.picoe.ca/api/type/eto.forms.bindablewidget.md): [Bindings](https://eto.picoe.ca/api/type/eto.forms.bindablewidget/bindings.md), [DataContext](https://eto.picoe.ca/api/type/eto.forms.bindablewidget/datacontext.md), [IsDataContextChanging](https://eto.picoe.ca/api/type/eto.forms.bindablewidget/isdatacontextchanging.md), [Parents](https://eto.picoe.ca/api/type/eto.forms.bindablewidget/parents.md), [DataContextChanged](https://eto.picoe.ca/api/type/eto.forms.bindablewidget/datacontextchanged.md), [OnDataContextChanged](https://eto.picoe.ca/api/type/eto.forms.bindablewidget/ondatacontextchanged.md), [UpdateBindings](https://eto.picoe.ca/api/type/eto.forms.bindablewidget/updatebindings.md)
- From [Widget](https://eto.picoe.ca/api/type/eto.widget.md): [ControlObject](https://eto.picoe.ca/api/type/eto.widget/controlobject.md), [ID](https://eto.picoe.ca/api/type/eto.widget/id.md), [IsDisposed](https://eto.picoe.ca/api/type/eto.widget/isdisposed.md), [NativeHandle](https://eto.picoe.ca/api/type/eto.widget/nativehandle.md), [Platform](https://eto.picoe.ca/api/type/eto.widget/platform.md), [Properties](https://eto.picoe.ca/api/type/eto.widget/properties.md), [Style](https://eto.picoe.ca/api/type/eto.widget/style.md), [StyleChanged](https://eto.picoe.ca/api/type/eto.widget/stylechanged.md), [Dispose](https://eto.picoe.ca/api/type/eto.widget/dispose.md), [Initialize](https://eto.picoe.ca/api/type/eto.widget/initialize.md), [ToString](https://eto.picoe.ca/api/type/eto.widget/tostring.md)
