Show / Hide Table of Contents

# Class RadioGroup

RadioGroup shows a group of radio labels, only one of those can be selected at a given time

##### Inheritance

System.Object
Responder
View
RadioGroup

##### Implements

System.IDisposable
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.Data
View.Driver
View.Subviews
View.TabIndexes
View.TabIndex
View.TabStop
View.CanFocus
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.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.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.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.Text
View.TextAlignment
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 RadioGroup : View, IDisposable, ISupportInitializeNotification, ISupportInitialize

### Constructors

#### RadioGroup()

Initializes a new instance of the RadioGroup class using Computed layout.

##### Declaration

    public RadioGroup()

#### RadioGroup(ustring[], Int32)

Initializes a new instance of the RadioGroup class using Computed layout.

##### Declaration

    public RadioGroup(ustring[] radioLabels, int selected = 0)

##### Parameters

Type | Name | Description
--- | --- | ---
NStack.ustring[] | radioLabels | The radio labels; an array of strings that can contain hotkeys using an underscore before the letter.
System.Int32 | selected | The index of the item to be selected, the value is clamped to the number of items.

#### RadioGroup(Int32, Int32, ustring[], Int32)

Initializes a new instance of the RadioGroup class using Absolute layout. The View frame is computed from the provided radio labels.

##### Declaration

    public RadioGroup(int x, int y, ustring[] radioLabels, int selected = 0)

##### Parameters

Type | Name | Description
--- | --- | ---
System.Int32 | x | The x coordinate.
System.Int32 | y | The y coordinate.
NStack.ustring[] | radioLabels | The radio labels; an array of strings that can contain hotkeys using an underscore before the letter.
System.Int32 | selected | The item to be selected, the value is clamped to the number of items.

#### RadioGroup(Rect, ustring[], Int32)

Initializes a new instance of the RadioGroup class using Absolute layout.

##### Declaration

    public RadioGroup(Rect rect, ustring[] radioLabels, int selected = 0)

##### Parameters

Type | Name | Description
--- | --- | ---
Rect | rect | Boundaries for the radio group.
NStack.ustring[] | radioLabels | The radio labels; an array of strings that can contain hotkeys using an underscore before the letter.
System.Int32 | selected | The index of item to be selected, the value is clamped to the number of items.

### Properties

#### DisplayMode

Gets or sets the DisplayModeLayout for this RadioGroup.

##### Declaration

    public DisplayModeLayout DisplayMode { get; set; }

##### Property Value

Type | Description
--- | ---
DisplayModeLayout |

#### HorizontalSpace

Gets or sets the horizontal space for this RadioGroup if the DisplayMode is Horizontal

##### Declaration

    public int HorizontalSpace { get; set; }

##### Property Value

Type | Description
--- | ---
System.Int32 |

#### RadioLabels

The radio labels to display

##### Declaration

    public ustring[] RadioLabels { get; set; }

##### Property Value

Type | Description
--- | ---
NStack.ustring[] | The radio labels.

#### SelectedItem

The currently selected item from the list of radio labels

##### Declaration

    public int SelectedItem { get; set; }

##### Property Value

Type | Description
--- | ---
System.Int32 | The selected.

### Methods

#### MouseEvent(MouseEvent)

Method invoked when a mouse event is generated

##### Declaration

    public override bool MouseEvent(MouseEvent me)

##### Parameters

Type | Name | Description
--- | --- | ---
MouseEvent | me |

##### Returns

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

##### Overrides

Responder.MouseEvent(MouseEvent)

#### OnSelectedItemChanged(Int32, Int32)

Called whenever the current selected item changes. Invokes the SelectedItemChanged event.

##### Declaration

    public virtual void OnSelectedItemChanged(int selectedItem, int previousSelectedItem)

##### Parameters

Type | Name | Description
--- | --- | ---
System.Int32 | selectedItem |
System.Int32 | previousSelectedItem |

#### PositionCursor()

Positions the cursor in the right position based on the currently focused view in the chain.

##### Declaration

    public override void PositionCursor()

##### Overrides

View.PositionCursor()

#### ProcessColdKey(KeyEvent)

This method can be overwritten by views that want to provide accelerator functionality (Alt-key for example), but without interefering with normal ProcessKey behavior.

##### Declaration

    public override bool ProcessColdKey(KeyEvent kb)

##### Parameters

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

##### Returns

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

##### Overrides

View.ProcessColdKey(KeyEvent)

##### Remarks

After keys are sent to the subviews on the current view, all the view are processed and the key is passed to the views to allow some of them to process the keystroke as a cold-key.

This functionality is used, for example, by default buttons to act on the enter key. Processing this as a hot-key would prevent non-default buttons from consuming the enter keypress when they have the focus.

#### 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

View.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.

#### Redraw(Rect)

Redraws this view and its subviews; only redraws the views that have been flagged for a re-display.

##### Declaration

    public override void Redraw(Rect bounds)

##### Parameters

Type | Name | Description
--- | --- | ---
Rect | bounds | The bounds (view-relative region) to redraw.

##### Overrides

View.Redraw(Rect)

##### Remarks

Always use Bounds (view-relative) when calling Redraw(Rect), NOT Frame (superview-relative).

Views should set the color that they want to use on entry, as otherwise this will inherit the last color that was set globally on the driver.

Overrides of Redraw(Rect) must ensure they do not set `Driver.Clip` to a clip region larger than the `region` parameter.

#### Refresh()

Allow to invoke the SelectedItemChanged after their creation.

##### Declaration

    public void Refresh()

### Events

#### SelectedItemChanged

Invoked when the selected radio label has changed.

##### Declaration

    public event Action<RadioGroup.SelectedItemChangedArgs> SelectedItemChanged

##### Event Type

Type | Description
--- | ---
System.Action<RadioGroup.SelectedItemChangedArgs> |

### Implements

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