Text box



A text box, text field or text entry box is a common element of graphical user interface of computer programs, as well as the corresponding type of widget used when programming GUIs. A text box's purpose is to allow the user to input text information to be used by the program. User-interface guidelines recommend a single-line text box when only one line of input is required, and a multi-line textbox only if more than one line of input may be required. Non-editable text boxes can serve the purpose of simply displaying text.

A typical text box is a rectangle of any size, possibly with a border that separates the text box from the rest of the interface. Text boxes may contain zero, one, or two scrollbars. Some text boxes may display a blinking vertical line (known as a caret), indicating the current region of text being edited. It is common for the mouse cursor to change its shape when it hovers over a text box.

Standard functionality
Typical implementations allow a user to do the following:
 * Type in text using a keyboard
 * The text appears when pressing keys in the position indicated by the caret. Some very simple text boxes may not show a caret, which would suggest that new characters typed in will appear at the end of the current text.
 * Navigate and select portions of text
 * Using a mouse:
 * Change the caret position by clicking the desired point with a mouse cursor;
 * Select a portion of text by pressing the main mouse button while pointing the cursor at one end of the desired part of text and dragging the cursor to the other end while holding the button pressed.
 * Using the keyboard:
 * Pressing arrow keys changes caret position by one character or line (in multiline text boxes);
 * Pressing Home/End keys (Microsoft Windows) or Command-left arrow/Command-right arrow (Mac OS) moves the caret to the beginning/end of the line;
 * Pressing Page Up/Down moves the caret a page (the number of lines that can be displayed in the text box at a time) backward/forward (Windows) or moves the scrollbar thumb a page backward/forward without changing the caret position (Mac OS);
 * Holding the Ctrl key (Windows) while pressing arrow keys or Home/End keys makes the caret move at larger steps - e.g. words or paragraphs or beginning/end of document;
 * Holding the Option key (Mac OS) while pressing arrows moves the caret whole words or paragraphs;
 * Holding the Command key while pressing up or down arrows (Mac OS) or Holding the Ctrl key while pressing home/end (Windows) moves the caret to the beginning or end of the document;
 * Holding the shift key while changing the caret position with a mouse or keyboard selects the text between the caret position from when shift was first pressed and its current position.
 * Edit the text (enable changing the text already entered)
 * Work in insert or overwrite mode, typically switched using Insert key. In insert mode if there is a character to the right of the caret, the new character will be inserted before it, while in overwrite mode typing a new character will replace (overwrite) the character to the right of the caret position.
 * Typing in a text while some part of the text already entered is selected will replace the selected text.
 * Delete/Backspace keys remove one character right/left of current caret position, while pressing them together with the Ctrl or command key removes one word.
 * Edit the text using standard clipboard operations.
 * Undo/Redo changes with Ctrl+Z/Ctrl+Y (Windows) or command-Z/command-shift-Z (Mac OS)

The keys indicated relate to the text box widget in Microsoft Windows and Mac OS X; similar if not identical keyboard bindings exist under the X Window System and other systems, and typically follow the same scheme as Windows.