From Xojo Documentation
|You are currently browsing the old Xojo documentation site. Please visit the new Xojo documentation site!|
| This item was deprecated in version 2021r3.
Please use DesktopTextField as a replacement.
The standard editable text field used by desktop applications. A TextField control can contain one line of text, with one font, font size, and style. Use TextArea if you need multiple lines of text or styled text.
Execution order of MenuHandlers
The intrinsic control menu handlers (such as TextField.SelectAll) are handled after any user-defined menu handlers on the TextField subclass (if it was subclassed). This means that if you have a SelectAll handler on the Window of the TextField, it will no longer be called when the TextField has focus, because the TextField will now handle it first. In this situation, create a TextField subclass that defines its own SelectAll handler, and handle the desired behavior there.
Adding Text to a TextField
When adding text to a TextField, you may notice some flicker as the TextField redraws to show the new text. This will happen if you appended the Value property of the TextField like this:
This occurs because the entire contents of the TextField has to be redrawn. To avoid this flicker, call the AddText method instead. Pass it the text to be added. For example, this code reads an external text file into a TextField using the Read method of the Readable class interface. The text is read in groups of 1000 characters until the end-of-file is reached.
Var i As Integer
Var stream As BinaryStream
f = FolderItem.ShowOpenFileDialog(FileTypes1.Text) // file type defined in File type set
If f <> Nil Then
stream = BinaryStream.Open(f, False)
Loop Until stream.EndOfFile
TextFields store all text internally in Unicode, which is able to represent a mixture of characters from different writing systems. When you extract the text via the Value or SelectedText properties, this text is returned in UTF-8.
Changing the TextColor property for a read-only TextField on Windows does not change the color. It is native Windows behavior for the field text to remain black.
Set the alignment of the entire contents of the TextField via the TextAlignment property.