Show / Hide Table of Contents

# Class Dialog

The Dialog View is a Window that by default is centered and contains one or more Buttons. It defaults to the Dialog color scheme and has a 1 cell padding around the edges.

##### Inheritance

System.Object
Responder
View
Toplevel
Window
Dialog
FileDialog

##### Implements

System.IDisposable
System.ComponentModel.ISupportInitializeNotification
System.ComponentModel.ISupportInitialize

##### Inherited Members

Window.Title
Window.Add(View)
Window.Remove(View)
Window.RemoveAll()
Window.Redraw(Rect)
Window.MouseEvent(MouseEvent)
Window.Text
Window.TextAlignment
Toplevel.Running
Toplevel.Loaded
Toplevel.Ready
Toplevel.Unloaded
Toplevel.Create()
Toplevel.CanFocus
Toplevel.Modal
Toplevel.MenuBar
Toplevel.StatusBar
Toplevel.OnKeyDown(KeyEvent)
Toplevel.OnKeyUp(KeyEvent)
Toplevel.ProcessColdKey(KeyEvent)
Toplevel.WillPresent()
View.Added
View.Removed
View.Enter
View.Leave
View.MouseEnter
View.MouseLeave
View.MouseClick
View.HotKey
View.HotKeySpecifier
View.Shortcut
View.ShortcutTag
View.ShortcutAction
View.Data
View.Driver
View.Subviews
View.TabIndexes
View.TabIndex
View.TabStop
View.Id
View.IsCurrentTop
View.WantMousePositionReports
View.WantContinuousButtonPressed
View.Frame
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.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.DrawContent
View.OnDrawContent(Rect)
View.SetFocus()
View.KeyPress
View.ProcessHotKey(KeyEvent)
View.KeyDown
View.KeyUp
View.EnsureFocus()
View.FocusFirst()
View.FocusLast()
View.FocusPrev()
View.FocusNext()
View.LayoutStarted
View.LayoutComplete
View.Initialized
View.LayoutSubviews()
View.AutoSize
View.IsInitialized
View.ToString()
View.OnMouseEnter(MouseEvent)
View.OnMouseLeave(MouseEvent)
View.OnMouseEvent(MouseEvent)
View.OnMouseClick(View.MouseEventArgs)
View.Dispose(Boolean)
View.BeginInit()
View.EndInit()
View.Visible
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 Dialog : Window, IDisposable, ISupportInitializeNotification, ISupportInitialize

##### Remarks

To run the Dialog modally, create the Dialog, and pass it to Run(). This will execute the dialog until it terminates via the [ESC] or [CTRL-Q] key, or when one of the views or buttons added to the dialog calls RequestStop().

### Constructors

#### Dialog()

Initializes a new instance of the Dialog class using Computed.

##### Declaration

    public Dialog()

##### Remarks

Te Dialog will be vertically and horizontally centered in the container and the size will be 85% of the container. After initialzation use `X`, `Y`, `Width`, and `Height` to override this with a location or size.

Use AddButton(Button) to add buttons to the dialog.

#### Dialog(ustring, Int32, Int32, Button[])

Initializes a new instance of the Dialog class using Computed positioning and an optional set of Buttons to display

##### Declaration

    public Dialog(ustring title, int width, int height, params Button[] buttons)

##### Parameters

Type | Name | Description
--- | --- | ---
NStack.ustring | title | Title for the dialog.
System.Int32 | width | Width for the dialog.
System.Int32 | height | Height for the dialog.
Button[] | buttons | Optional buttons to lay out at the bottom of the dialog.

##### Remarks

if `width` and `height` are both 0, the Dialog will be vertically and horizontally centered in the container and the size will be 85% of the container. After initialzation use `X`, `Y`, `Width`, and `Height` to override this with a location or size.

#### Dialog(ustring, Button[])

Initializes a new instance of the Dialog class using Computed positioning and with an optional set of Buttons to display

##### Declaration

    public Dialog(ustring title, params Button[] buttons)

##### Parameters

Type | Name | Description
--- | --- | ---
NStack.ustring | title | Title for the dialog.
Button[] | buttons | Optional buttons to lay out at the bottom of the dialog.

##### Remarks

Te Dialog will be vertically and horizontally centered in the container and the size will be 85% of the container. After initialzation use `X`, `Y`, `Width`, and `Height` to override this with a location or size.

### Methods

#### AddButton(Button)

Adds a Button to the Dialog, its layout will be controlled by the Dialog

##### Declaration

    public void AddButton(Button button)

##### Parameters

Type | Name | Description
--- | --- | ---
Button | button | Button to add.

#### ProcessKey(KeyEvent)

If the view is focused, gives the view a chance to process the keystroke.

##### Declaration

    public override bool ProcessKey(KeyEvent kb)

##### Parameters

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

##### Returns

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

##### Overrides

Toplevel.ProcessKey(KeyEvent)

##### Remarks

Views can override this method if they are interested in processing the given keystroke. If they consume the keystroke, they must return true to stop the keystroke from being processed by other widgets or consumed by the widget engine. If they return false, the keystroke will be passed using the ProcessColdKey method to other views to process.

The View implementation does nothing but return false, so it is not necessary to call base.ProcessKey if you derive directly from View, but you should if you derive other View subclasses.

### Implements

System.IDisposable
System.ComponentModel.ISupportInitializeNotification
System.ComponentModel.ISupportInitialize