Selects the word containing the insertion point in a RichTextEdit control.

Applies to

RichTextEdit and DataWindow controls


rtename.SelectTextWord ( )




The name of the RichTextEdit or DataWindow control in which you want to select a word. The DataWindow object in the DataWindow control must be a RichTextEdit DataWindow.

Return value


Returns the number of characters selected if it succeeds and -1 if a word cannot be selected or an error occurs.


A word is any group of alphanumeric characters. A word can include underscores and single quotes but does not include punctuation and special characters such as $ or #. If punctuation or special characters follow the selected word, they are not selected.

If the character after the insertion point is a space, punctuation, special character, or end-of-line mark, SelectTextWord does not select anything and returns -1.


The following statement selects the word containing the insertion point:


This example selects the word at the insertion point. If there is no word, it increments the position until it finds a word. It checks when it reaches the end of a line and wraps to the next line as it looks for a word. If this script is assigned to a command button and the button is clicked repeatedly, you step through the text word by word:

integer li_rtn
long llstart, lcstart, ll_lines, ll_chars
ll_lines = rte_1.LineCount()
ll_chars = rte_1.LineLength()
li_rtn = rte_1.SelectTextWord()
// -1 if a word is not found at the insertion point
   DO WHILE li_rtn = -1
      // Get the position of the cursor
      rte_1.Position(llstart, lcstart)
      // Increment by 1 to look for next word
      lcstart += 1
      // If at end of line move to next line
      IF lcstart >= ll_chars THEN
         lcstart = 1  // First character
         llstart += 1 // next line
         // If beyond last line, return
         IF llstart > ll_lines THEN
            RETURN 0
         END IF
      END IF
      // Set insertion point
      rte_1.SelectText(llstart, lcstart, 0, 0)
      // In case it's a new line, get new line length
      // Can't do this until the ins pt is in the line
      ll_chars = rte_1.LineLength( )
      // Select word, if any
      li_rtn = rte_1.SelectTextWord()
// Add code here to process the word (for example,
// passing the word to a spelling checker)

See also