如何:在 Windows 窗体 TextBox 控件中选择文本

可以在 Windows 窗体 TextBox 控件中以编程方式选择文本。 例如,如果创建一个在文本中搜索特定字符串的函数,则可以选择文本以直观地提示读者找到的字符串的位置。

以编程方式选择文本

  1. SelectionStart 属性设置为要选择的文本的开头。

    SelectionStart 属性是一个数字,指示文本字符串中的插入点,0 是最左侧的位置。 如果 SelectionStart 属性设置的值等于或大于文本框中的字符数,则插入点位于最后一个字符之后。

  2. SelectionLength 属性设置为要选择的文本的长度。

    SelectionLength 属性是设置插入点宽度的数值。 将 SelectionLength 设置为大于 0 的数字会导致从当前插入点开始选择该数量的字符。

  3. (可选)通过 SelectedText 属性访问所选文本。

    下面的代码在控件的 Enter 事件发生时选择文本框的内容。 此示例检查文本框的 Text 属性值是否不为 null 或空字符串。 当文本框接收到焦点时,将选中文本框中的当前文本。 TextBox1_Enter 事件处理程序必须绑定到控件;有关详细信息,请参阅如何:在运行时为 Windows 窗体创建事件处理程序

    若要测试此示例,请按 Tab 键,直到文本框具有焦点。 如果在文本框中单击,则将取消选中该文本。

    Private Sub TextBox1_Enter(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox1.Enter  
       If (Not String.IsNullOrEmpty(TextBox1.Text)) Then  
          TextBox1.SelectionStart = 0  
          TextBox1.SelectionLength = TextBox1.Text.Length  
       End If  
    End Sub  
    
    private void textBox1_Enter(object sender, System.EventArgs e){  
       if (!String.IsNullOrEmpty(textBox1.Text))  
       {  
          textBox1.SelectionStart = 0;  
          textBox1.SelectionLength = textBox1.Text.Length;  
       }  
    }  
    
    private:  
       void textBox1_Enter(System::Object ^ sender,  
          System::EventArgs ^ e) {  
       if (!System::String::IsNullOrEmpty(textBox1->Text))  
       {  
          textBox1->SelectionStart = 0;  
          textBox1->SelectionLength = textBox1->Text->Length;  
       }  
    }  
    

另请参阅