Search Results for

Show / Hide Table of Contents

# Class TextView

Multi-line text editing View

##### Inheritance

System.Object
Responder
View
TextView

##### Implements

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

##### Remarks

TextView provides a multi-line text editor. Users interact with it with the standard Emacs commands for movement or the arrow keys.

Shortcut | Action performed
--- | ---
Left cursor, Control-b | Moves the editing point left.
Right cursor, Control-f | Moves the editing point right.
Alt-b | Moves one word back.
Alt-f | Moves one word forward.
Up cursor, Control-p | Moves the editing point one line up.
Down cursor, Control-n | Moves the editing point one line down
Home key, Control-a | Moves the cursor to the beginning of the line.
End key, Control-e | Moves the cursor to the end of the line.
Control-Home | Scrolls to the first line and moves the cursor there.
Control-End | Scrolls to the last line and moves the cursor there.
Delete, Control-d | Deletes the character in front of the cursor.
Backspace | Deletes the character behind the cursor.
Control-k | Deletes the text until the end of the line and replaces the kill buffer with the deleted text. You can paste this text in a different place by using Control-y.
Control-y | Pastes the content of the kill ring into the current position.
Alt-d | Deletes the word above the cursor and adds it to the kill ring. You can paste the contents of the kill ring with Control-y.
Control-q | Quotes the next input character, to prevent the normal processing of key handling to take place.

##### Inherited Members

View.GetMinWidthHeight(Size)
View.SetMinWidthHeight()
View.UpdateTextFormatterText()
View.ProcessResizeView()
View.SetNeedsDisplay()
View.ClearLayoutNeeded()
View.SetNeedsDisplay(Rect)
View.SetChildNeedsDisplay()
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, Boolean)
View.OnAdded(View)
View.OnRemoved(View)
View.AddRune(Int32, Int32, Rune)
View.ClearNeedsDisplay()
View.OnDrawContent(Rect)
View.OnDrawContentComplete(Rect)
View.SetFocus()
View.InvokeKeybindings(KeyEvent)
View.AddKeyBinding(Key, Command)
View.ReplaceKeyBinding(Key, Key)
View.ContainsKeyBinding(Key)
View.ClearKeybindings()
View.ClearKeybinding(Key)
View.ClearKeybinding(Command)
View.AddCommand(Command, Func<Nullable<Boolean>>)
View.GetSupportedCommands()
View.GetKeyFromCommand(Command)
View.ProcessHotKey(KeyEvent)
View.ProcessColdKey(KeyEvent)
View.OnKeyDown(KeyEvent)
View.EnsureFocus()
View.FocusFirst()
View.FocusLast()
View.FocusPrev()
View.FocusNext()
View.LayoutSubviews()
View.ToString()
View.GetAutoSize()
View.GetHotKeySpecifierLength(Boolean)
View.GetTextFormatterBoundsSize()
View.GetBoundsTextFormatterSize()
View.OnMouseEnter(MouseEvent)
View.OnMouseLeave(MouseEvent)
View.OnMouseEvent(MouseEvent)
View.OnMouseClick(View.MouseEventArgs)
View.OnCanFocusChanged()
View.OnEnabledChanged()
View.OnVisibleChanged()
View.Dispose(Boolean)
View.BeginInit()
View.EndInit()
View.SetWidth(Int32, Int32)
View.SetHeight(Int32, Int32)
View.GetCurrentWidth(Int32)
View.GetCurrentHeight(Int32)
View.GetNormalColor()
View.GetTopSuperView()
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.LayoutStyle
View.Bounds
View.X
View.Y
View.Width
View.Height
View.ForceValidatePosDim
View.TextFormatter
View.SuperView
View.HasFocus
View.Focused
View.MostFocused
View.ColorScheme
View.AutoSize
View.PreserveTrailingSpaces
View.TextAlignment
View.VerticalTextAlignment
View.TextDirection
View.IsInitialized
View.IsAdded
View.Enabled
View.Visible
View.Border
View.Added
View.Removed
View.Enter
View.Leave
View.MouseEnter
View.MouseLeave
View.MouseClick
View.CanFocusChanged
View.EnabledChanged
View.VisibleChanged
View.HotKeyChanged
View.DrawContent
View.DrawContentComplete
View.KeyPress
View.KeyDown
View.KeyUp
View.LayoutStarted
View.LayoutComplete
View.Initialized
Responder.Dispose()

###### Namespace: Terminal.Gui

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

##### Syntax

    public class TextView : View

### Constructors

#### TextView()

Initializes a TextView on the specified area, with dimensions controlled with the X, Y, Width and Height properties.

##### Declaration

    public TextView()

#### TextView(Rect)

Initializes a TextView on the specified area, with absolute position and size.

##### Declaration

    public TextView(Rect frame)

##### Parameters

Type | Name | Description
--- | --- | ---
Rect | frame |

### Properties

#### AllowsReturn

Gets or sets a value indicating whether pressing ENTER in a TextView creates a new line of text in the view or activates the default button for the toplevel.

##### Declaration

    public bool AllowsReturn { get; set; }

##### Property Value

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

#### AllowsTab

Gets or sets whether the TextView inserts a tab character into the text or ignores tab input. If set to `false` and the user presses the tab key (or shift-tab) the focus will move to the next view (or previous with shift-tab). The default is `true`; if the user presses the tab key, a tab character will be inserted into the text.

##### Declaration

    public bool AllowsTab { get; set; }

##### Property Value

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

#### Autocomplete

Provides autocomplete context menu based on suggestions at the current cursor position. Populate AllSuggestions to enable this feature

##### Declaration

    public IAutocomplete Autocomplete { get; protected set; }

##### Property Value

Type | Description
--- | ---
IAutocomplete |

#### BottomOffset

The bottom offset needed to use a horizontal scrollbar or for another reason. This is only needed with the keyboard navigation.

##### Declaration

    public int BottomOffset { get; set; }

##### Property Value

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

#### CanFocus

Gets or sets a value indicating whether this Responder can focus.

##### Declaration

    public override bool CanFocus { get; set; }

##### Property Value

Type | Description
--- | ---
System.Boolean | `true` if can focus; otherwise, `false`.

##### Overrides

View.CanFocus

#### ContextMenu

Get the ContextMenu for this view.

##### Declaration

    public ContextMenu ContextMenu { get; }

##### Property Value

Type | Description
--- | ---
ContextMenu |

#### CurrentColumn

Gets the cursor column.

##### Declaration

    public int CurrentColumn { get; }

##### Property Value

Type | Description
--- | ---
System.Int32 | The cursor column.

#### CurrentRow

Gets the current cursor row.

##### Declaration

    public int CurrentRow { get; }

##### Property Value

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

#### CursorPosition

Sets or gets the current cursor position.

##### Declaration

    public Point CursorPosition { get; set; }

##### Property Value

Type | Description
--- | ---
Point |

#### DesiredCursorVisibility

Get / Set the wished cursor when the field is focused

##### Declaration

    public CursorVisibility DesiredCursorVisibility { get; set; }

##### Property Value

Type | Description
--- | ---
CursorVisibility |

#### Frame

Gets or sets the frame for the view. The frame is relative to the view's container (SuperView).

##### Declaration

    public override Rect Frame { get; set; }

##### Property Value

Type | Description
--- | ---
Rect | The frame.

##### Overrides

View.Frame

#### HasHistoryChanges

Indicates whatever the text has history changes or not. true if the text has history changes false otherwise.

##### Declaration

    public bool HasHistoryChanges { get; }

##### Property Value

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

#### IsDirty

Indicates whatever the text was changed or not. true if the text was changed false otherwise.

##### Declaration

    public bool IsDirty { get; }

##### Property Value

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

#### LeftColumn

Gets or sets the left column.

##### Declaration

    public int LeftColumn { get; set; }

##### Property Value

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

#### Lines

Gets the number of lines.

##### Declaration

    public int Lines { get; }

##### Property Value

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

#### Maxlength

Gets the maximum visible length line.

##### Declaration

    public int Maxlength { get; }

##### Property Value

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

#### Multiline

Gets or sets a value indicating whether this TextView is a multiline text view.

##### Declaration

    public bool Multiline { get; set; }

##### Property Value

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

#### ReadOnly

Gets or sets whether the TextView is in read-only mode or not

##### Declaration

    public bool ReadOnly { get; set; }

##### Property Value

Type | Description
--- | ---
System.Boolean | Boolean value(Default false)

#### RightOffset

The right offset needed to use a vertical scrollbar or for another reason. This is only needed with the keyboard navigation.

##### Declaration

    public int RightOffset { get; set; }

##### Property Value

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

#### SelectedLength

Length of the selected text.

##### Declaration

    public int SelectedLength { get; }

##### Property Value

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

#### SelectedText

The selected text.

##### Declaration

    public ustring SelectedText { get; }

##### Property Value

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

#### Selecting

Get or sets the selecting.

##### Declaration

    public bool Selecting { get; set; }

##### Property Value

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

#### SelectionStartColumn

Start column position of the selected text.

##### Declaration

    public int SelectionStartColumn { get; set; }

##### Property Value

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

#### SelectionStartRow

Start row position of the selected text.

##### Declaration

    public int SelectionStartRow { get; set; }

##### Property Value

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

#### TabWidth

Gets or sets a value indicating the number of whitespace when pressing the TAB key.

##### Declaration

    public int TabWidth { get; set; }

##### Property Value

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

#### Text

Sets or gets the text in the TextView.

##### Declaration

    public override ustring Text { get; set; }

##### Property Value

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

##### Overrides

View.Text

#### TopRow

Gets or sets the top row.

##### Declaration

    public int TopRow { get; set; }

##### Property Value

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

#### Used

Tracks whether the text view should be considered "used", that is, that the user has moved in the entry, so new input should be appended at the cursor position, rather than clearing the entry

##### Declaration

    public bool Used { get; set; }

##### Property Value

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

#### WordWrap

Allows word wrap the to fit the available container width.

##### Declaration

    public bool WordWrap { get; set; }

##### Property Value

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

### Methods

#### ClearHistoryChanges()

Allows clearing the Terminal.Gui.HistoryText.HistoryTextItem items updating the original text.

##### Declaration

    public void ClearHistoryChanges()

#### CloseFile()

Closes the contents of the stream into the TextView.

##### Declaration

    public bool CloseFile()

##### Returns

Type | Description
--- | ---
System.Boolean | `true`, if stream was closed, `false` otherwise.

#### ColorNormal()

Sets the driver to the default color for the control where no text is being rendered. Defaults to Normal.

##### Declaration

    protected virtual void ColorNormal()

#### ColorNormal(List<Rune>, Int32)

Sets the Driver to an appropriate color for rendering the given `idx` of the current `line`. Override to provide custom coloring by calling SetAttribute(Attribute) Defaults to Normal.

##### Declaration

    protected virtual void ColorNormal(List<Rune> line, int idx)

##### Parameters

Type | Name | Description
--- | --- | ---
System.Collections.Generic.List<System.Rune> | line |
System.Int32 | idx |

#### ColorSelection(List<Rune>, Int32)

Sets the Driver to an appropriate color for rendering the given `idx` of the current `line`. Override to provide custom coloring by calling SetAttribute(Attribute) Defaults to Focus.

##### Declaration

    protected virtual void ColorSelection(List<Rune> line, int idx)

##### Parameters

Type | Name | Description
--- | --- | ---
System.Collections.Generic.List<System.Rune> | line |
System.Int32 | idx |

#### ColorUsed(List<Rune>, Int32)

Sets the Driver to an appropriate color for rendering the given `idx` of the current `line`. Override to provide custom coloring by calling SetAttribute(Attribute) Defaults to HotFocus.

##### Declaration

    protected virtual void ColorUsed(List<Rune> line, int idx)

##### Parameters

Type | Name | Description
--- | --- | ---
System.Collections.Generic.List<System.Rune> | line |
System.Int32 | idx |

#### Copy()

Copy the selected text to the clipboard contents.

##### Declaration

    public void Copy()

#### Cut()

Cut the selected text to the clipboard contents.

##### Declaration

    public void Cut()

#### DeleteAll()

Deletes all text.

##### Declaration

    public void DeleteAll()

#### DeleteCharLeft()

Deletes all the selected or a single character at left from the position of the cursor.

##### Declaration

    public void DeleteCharLeft()

#### DeleteCharRight()

Deletes all the selected or a single character at right from the position of the cursor.

##### Declaration

    public void DeleteCharRight()

#### FindNextText(ustring, out Boolean, Boolean, Boolean, ustring, Boolean)

Find the next text based on the match case with the option to replace it.

##### Declaration

    public bool FindNextText(ustring textToFind, out bool gaveFullTurn, bool matchCase = false, bool matchWholeWord = false, ustring textToReplace = null, bool replace = false)

##### Parameters

Type | Name | Description
--- | --- | ---
NStack.ustring | textToFind | The text to find.
System.Boolean | gaveFullTurn | `true`If all the text was forward searched.`false`otherwise.
System.Boolean | matchCase | The match case setting.
System.Boolean | matchWholeWord | The match whole word setting.
NStack.ustring | textToReplace | The text to replace.
System.Boolean | replace | `true`If is replacing.`false`otherwise.

##### Returns

Type | Description
--- | ---
System.Boolean | `true`If the text was found.`false`otherwise.

#### FindPreviousText(ustring, out Boolean, Boolean, Boolean, ustring, Boolean)

Find the previous text based on the match case with the option to replace it.

##### Declaration

    public bool FindPreviousText(ustring textToFind, out bool gaveFullTurn, bool matchCase = false, bool matchWholeWord = false, ustring textToReplace = null, bool replace = false)

##### Parameters

Type | Name | Description
--- | --- | ---
NStack.ustring | textToFind | The text to find.
System.Boolean | gaveFullTurn | `true`If all the text was backward searched.`false`otherwise.
System.Boolean | matchCase | The match case setting.
System.Boolean | matchWholeWord | The match whole word setting.
NStack.ustring | textToReplace | The text to replace.
System.Boolean | replace | `true`If the text was found.`false`otherwise.

##### Returns

Type | Description
--- | ---
System.Boolean | `true`If the text was found.`false`otherwise.

#### FindTextChanged()

Reset the flag to stop continuous find.

##### Declaration

    public void FindTextChanged()

#### GetCurrentLine()

Returns the characters on the current line (where the cursor is positioned). Use CurrentColumn to determine the position of the cursor within that line

##### Declaration

    public List<Rune> GetCurrentLine()

##### Returns

Type | Description
--- | ---
System.Collections.Generic.List<System.Rune> |

#### InsertText(String)

Inserts the given `toAdd` text at the current cursor position exactly as if the user had just typed it

##### Declaration

    public void InsertText(string toAdd)

##### Parameters

Type | Name | Description
--- | --- | ---
System.String | toAdd | Text to add

#### LoadFile(String)

Loads the contents of the file into the TextView.

##### Declaration

    public bool LoadFile(string path)

##### Parameters

Type | Name | Description
--- | --- | ---
System.String | path | Path to the file to load.

##### Returns

Type | Description
--- | ---
System.Boolean | `true`, if file was loaded, `false` otherwise.

#### LoadStream(Stream)

Loads the contents of the stream into the TextView.

##### Declaration

    public void LoadStream(Stream stream)

##### Parameters

Type | Name | Description
--- | --- | ---
System.IO.Stream | stream | Stream to load the contents from.

#### MouseEvent(MouseEvent)

Method invoked when a mouse event is generated

##### Declaration

    public override bool MouseEvent(MouseEvent ev)

##### Parameters

Type | Name | Description
--- | --- | ---
MouseEvent | ev |

##### Returns

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

##### Overrides

Responder.MouseEvent(MouseEvent)

#### MoveEnd()

Will scroll the TextView to the last line and position the cursor there.

##### Declaration

    public void MoveEnd()

#### MoveHome()

Will scroll the TextView to the first line and position the cursor there.

##### Declaration

    public void MoveHome()

#### OnEnter(View)

Method invoked when a view gets focus.

##### Declaration

    public override bool OnEnter(View view)

##### Parameters

Type | Name | Description
--- | --- | ---
View | view | The view that is losing focus.

##### Returns

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

##### Overrides

View.OnEnter(View)

#### OnKeyUp(KeyEvent)

Method invoked when a key is released.

##### Declaration

    public override bool OnKeyUp(KeyEvent kb)

##### Parameters

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

##### Returns

Type | Description
--- | ---
System.Boolean | true if the event was handled

##### Overrides

View.OnKeyUp(KeyEvent)

#### OnLeave(View)

Method invoked when a view loses focus.

##### Declaration

    public override bool OnLeave(View view)

##### Parameters

Type | Name | Description
--- | --- | ---
View | view | The view that is getting focus.

##### Returns

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

##### Overrides

View.OnLeave(View)

#### Paste()

Paste the clipboard contents into the current selected position.

##### Declaration

    public void Paste()

#### PositionCursor()

Positions the cursor on the current row and column

##### Declaration

    public override void PositionCursor()

##### Overrides

View.PositionCursor()

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

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

#### ReplaceAllText(ustring, Boolean, Boolean, ustring)

Replaces all the text based on the match case.

##### Declaration

    public bool ReplaceAllText(ustring textToFind, bool matchCase = false, bool matchWholeWord = false, ustring textToReplace = null)

##### Parameters

Type | Name | Description
--- | --- | ---
NStack.ustring | textToFind | The text to find.
System.Boolean | matchCase | The match case setting.
System.Boolean | matchWholeWord | The match whole word setting.
NStack.ustring | textToReplace | The text to replace.

##### Returns

Type | Description
--- | ---
System.Boolean | `true`If the text was found.`false`otherwise.

#### ScrollTo(Int32, Boolean)

Will scroll the TextView to display the specified row at the top if `isRow` is true or will scroll the TextView to display the specified column at the left if `isRow` is false.

##### Declaration

    public void ScrollTo(int idx, bool isRow = true)

##### Parameters

Type | Name | Description
--- | --- | ---
System.Int32 | idx | Row that should be displayed at the top or Column that should be displayed at the left, if the value is negative it will be reset to zero
System.Boolean | isRow | If true (default) the `idx` is a row, column otherwise.

#### SelectAll()

Select all text.

##### Declaration

    public void SelectAll()

### Events

#### TextChanged

Raised when the Text of the TextView changes.

##### Declaration

    public event Action TextChanged

##### Event Type

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

### Implements

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