Show / Hide Table of Contents

# Class Button

Button is a View that provides an item that invokes an System.Action when activated by the user.

##### Inheritance

System.Object
Responder
View
Button

##### Implements

System.IDisposable
System.Collections.IEnumerable
System.ComponentModel.ISupportInitializeNotification
System.ComponentModel.ISupportInitialize

##### Inherited Members

View.Added
View.Removed
View.Enter
View.Leave
View.MouseEnter
View.MouseLeave
View.MouseClick
View.HotKey
View.HotKeySpecifier
View.Driver
View.Subviews
View.TabIndexes
View.TabIndex
View.TabStop
View.CanFocus
View.Id
View.IsCurrentTop
View.WantMousePositionReports
View.WantContinuousButtonPressed
View.Frame
View.GetEnumerator()
View.LayoutStyle
View.Bounds
View.X
View.Y
View.Width
View.Height
View.SuperView
View.SetNeedsDisplay()
View.SetNeedsDisplay(Rect)
View.ChildNeedsDisplay()
View.Add(View)
View.Add(View[])
View.RemoveAll()
View.Remove(View)
View.BringSubviewToFront(View)
View.SendSubviewToBack(View)
View.SendSubviewBackwards(View)
View.BringSubviewForward(View)
View.Clear()
View.Clear(Rect)
View.ScreenToView(Int32, Int32)
View.ClipToBounds()
View.SetClip(Rect)
View.DrawFrame(Rect, Int32, Boolean)
View.DrawHotString(ustring, Attribute, Attribute)
View.DrawHotString(ustring, Boolean, ColorScheme)
View.Move(Int32, Int32)
View.PositionCursor()
View.HasFocus
View.OnAdded(View)
View.OnRemoved(View)
View.OnEnter(View)
View.OnLeave(View)
View.Focused
View.MostFocused
View.ColorScheme
View.AddRune(Int32, Int32, Rune)
View.ClearNeedsDisplay()
View.Redraw(Rect)
View.DrawContent
View.OnDrawContent(Rect)
View.SetFocus(View)
View.KeyPress
View.KeyDown
View.OnKeyDown(KeyEvent)
View.KeyUp
View.OnKeyUp(KeyEvent)
View.EnsureFocus()
View.FocusFirst()
View.FocusLast()
View.FocusPrev()
View.FocusNext()
View.LayoutStarted
View.LayoutComplete
View.Initialized
View.LayoutSubviews()
View.TextAlignment
View.IsInitialized
View.ToString()
View.OnMouseEnter(MouseEvent)
View.OnMouseLeave(MouseEvent)
View.Dispose(Boolean)
View.BeginInit()
View.EndInit()
Responder.MouseEvent(MouseEvent)
Responder.Dispose()
System.Object.Equals(System.Object)
System.Object.Equals(System.Object, System.Object)
System.Object.GetHashCode()
System.Object.GetType()
System.Object.MemberwiseClone()
System.Object.ReferenceEquals(System.Object, System.Object)

###### Namespace: Terminal.Gui

###### Assembly: Terminal.Gui.dll

##### Syntax

    public class Button : View, IDisposable, IEnumerable, ISupportInitializeNotification, ISupportInitialize

##### Remarks

Provides a button showing text invokes an System.Action when clicked on with a mouse or when the user presses SPACE, ENTER, or hotkey. The hotkey is the first letter or digit following the first underscore ('_') in the button text.

Use HotKeySpecifier to change the hotkey specifier from the default of ('_').

If no hotkey specifier is found, the first uppercase letter encountered will be used as the hotkey.

When the button is configured as the default (IsDefault) and the user presses the ENTER key, if no other View processes the KeyEvent, the Button's System.Action will be invoked.

### Constructors

#### Button()

Initializes a new instance of Button using Computed layout.

##### Declaration

    public Button()

##### Remarks

The width of the Button is computed based on the text length. The height will always be 1.

#### Button(ustring, Boolean)

Initializes a new instance of Button using Computed layout.

##### Declaration

    public Button(ustring text, bool is_default = false)

##### Parameters

Type | Name | Description
--- | --- | ---
NStack.ustring | text | The button's text
System.Boolean | is_default | If `true`, a special decoration is used, and the user pressing the enter key in a Dialog will implicitly activate this button.

##### Remarks

The width of the Button is computed based on the text length. The height will always be 1.

#### Button(Int32, Int32, ustring)

Initializes a new instance of Button using Absolute layout, based on the given text

##### Declaration

    public Button(int x, int y, ustring text)

##### Parameters

Type | Name | Description
--- | --- | ---
System.Int32 | x | X position where the button will be shown.
System.Int32 | y | Y position where the button will be shown.
NStack.ustring | text | The button's text

##### Remarks

The width of the Button is computed based on the text length. The height will always be 1.

#### Button(Int32, Int32, ustring, Boolean)

Initializes a new instance of Button using Absolute layout, based on the given text.

##### Declaration

    public Button(int x, int y, ustring text, bool is_default)

##### Parameters

Type | Name | Description
--- | --- | ---
System.Int32 | x | X position where the button will be shown.
System.Int32 | y | Y position where the button will be shown.
NStack.ustring | text | The button's text
System.Boolean | is_default | If `true`, a special decoration is used, and the user pressing the enter key in a Dialog will implicitly activate this button.

##### Remarks

The width of the Button is computed based on the text length. The height will always be 1.

### Fields

#### Clicked

Clicked System.Action, raised when the user clicks the primary mouse button within the Bounds of this View or if the user presses the action key while this view is focused. (TODO: IsDefault)

##### Declaration

    public Action Clicked

##### Field Value

Type | Description
--- | ---
System.Action |

##### Remarks

Client code can hook up to this event, it is raised when the button is activated either with the mouse or the keyboard.

### Properties

#### IsDefault

Gets or sets whether the Button is the default action to activate in a dialog.

##### Declaration

    public bool IsDefault { get; set; }

##### Property Value

Type | Description
--- | ---
System.Boolean | `true` if is default; otherwise, `false`.

#### Text

The text displayed by this Button.

##### Declaration

    public ustring Text { get; set; }

##### Property Value

Type | Description
--- | ---
NStack.ustring |

### Methods

#### OnMouseEvent(MouseEvent)

Method invoked when a mouse event is generated

##### Declaration

    public override bool OnMouseEvent(MouseEvent mouseEvent)

##### Parameters

Type | Name | Description
--- | --- | ---
MouseEvent | mouseEvent |

##### Returns

Type | Description
--- | ---
System.Boolean | `true`, if the event was handled, `false` otherwise.

##### Overrides

View.OnMouseEvent(MouseEvent)

#### ProcessColdKey(KeyEvent)

##### Declaration

    public override bool ProcessColdKey(KeyEvent kb)

##### Parameters

Type | Name | Description
--- | --- | ---
KeyEvent | kb |

##### Returns

Type | Description
--- | ---
System.Boolean |

##### Overrides

View.ProcessColdKey(KeyEvent)

#### ProcessHotKey(KeyEvent)

##### Declaration

    public override bool ProcessHotKey(KeyEvent kb)

##### Parameters

Type | Name | Description
--- | --- | ---
KeyEvent | kb |

##### Returns

Type | Description
--- | ---
System.Boolean |

##### Overrides

View.ProcessHotKey(KeyEvent)

#### ProcessKey(KeyEvent)

##### Declaration

    public override bool ProcessKey(KeyEvent kb)

##### Parameters

Type | Name | Description
--- | --- | ---
KeyEvent | kb |

##### Returns

Type | Description
--- | ---
System.Boolean |

##### Overrides

View.ProcessKey(KeyEvent)

### Implements

System.IDisposable
System.Collections.IEnumerable
System.ComponentModel.ISupportInitializeNotification
System.ComponentModel.ISupportInitialize