Class TextView
Multi-line text editing View
Implements
System.IDisposable
System.ComponentModel.ISupportInitializeNotification
System.ComponentModel.ISupportInitialize
Inherited Members
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 TextView : View, IDisposable, ISupportInitializeNotification, 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. |
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 |
Remarks
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 a value indicating whether pressing the TAB key in a TextView
types a TAB character in the view instead of moving the focus to the next view in the tab order.
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 Autocomplete Autocomplete { get; protected set; }
Property Value
Type | Description |
---|---|
Autocomplete |
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
Declaration
public override bool CanFocus { get; set; }
Property Value
Type | Description |
---|---|
System.Boolean |
Overrides
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
Declaration
public override Rect Frame { get; set; }
Property Value
Type | Description |
---|---|
Rect |
Overrides
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
Remarks
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
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()
DeleteTextBackwards()
Deletes a single character from the position of the cursor
Declaration
public bool DeleteTextBackwards()
Returns
Type | Description |
---|---|
System.Boolean |
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)
Declaration
public override bool MouseEvent(MouseEvent ev)
Parameters
Type | Name | Description |
---|---|---|
MouseEvent | ev |
Returns
Type | Description |
---|---|
System.Boolean |
Overrides
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)
Declaration
public override bool OnEnter(View view)
Parameters
Type | Name | Description |
---|---|---|
View | view |
Returns
Type | Description |
---|---|
System.Boolean |
Overrides
OnKeyUp(KeyEvent)
Declaration
public override bool OnKeyUp(KeyEvent kb)
Parameters
Type | Name | Description |
---|---|---|
KeyEvent | kb |
Returns
Type | Description |
---|---|
System.Boolean |
Overrides
OnLeave(View)
Declaration
public override bool OnLeave(View view)
Parameters
Type | Name | Description |
---|---|---|
View | view |
Returns
Type | Description |
---|---|
System.Boolean |
Overrides
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
ProcessKey(KeyEvent)
Declaration
public override bool ProcessKey(KeyEvent kb)
Parameters
Type | Name | Description |
---|---|---|
KeyEvent | kb |
Returns
Type | Description |
---|---|
System.Boolean |
Overrides
Redraw(Rect)
Declaration
public override void Redraw(Rect bounds)
Parameters
Type | Name | Description |
---|---|---|
Rect | bounds |
Overrides
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
Declaration
public event Action TextChanged
Event Type
Type | Description |
---|---|
System.Action |
Implements
System.IDisposable
System.ComponentModel.ISupportInitializeNotification
System.ComponentModel.ISupportInitialize