TextBoxBase.SelectionStart 属性

获取或设置文本框中选定的文本起始点。

**命名空间:**System.Windows.Forms
**程序集:**System.Windows.Forms(在 system.windows.forms.dll 中)

语法

声明
Public Property SelectionStart As Integer
用法
Dim instance As TextBoxBase
Dim value As Integer

value = instance.SelectionStart

instance.SelectionStart = value
public int SelectionStart { get; set; }
public:
property int SelectionStart {
    int get ();
    void set (int value);
}
/** @property */
public int get_SelectionStart ()

/** @property */
public void set_SelectionStart (int value)
public function get SelectionStart () : int

public function set SelectionStart (value : int)

属性值

文本框中选定的文本的起始位置。

异常

异常类型 条件

ArgumentOutOfRangeException

赋给的值小于零。

备注

如果控件中没有选择任何文本,则该属性指示新文本的插入点。如果将此属性设置为超出了控件中文本长度的位置的值,则选定文本的起始位置将放在最后一个字符之后。如果在文本框控件中选择了文本,则更改此属性可能会减小 SelectionLength 属性的值。如果控件中在 SelectionStart 属性所指示的位置之后的剩余文本小于 SelectionLength 属性的值,则 SelectionLength 属性的值会自动减小。SelectionStart 属性的值从不会导致 SelectionLength 属性增加。

提示

可以用编程方式在文本框中移动插入符号,方法是:将 SelectionStart 设置为文本框中要将插入符号移动到的位置,并将 SelectionLength 属性设置为值 0。若要移动插入符号,该文本框必须具有焦点。

示例

下面的代码示例使用派生类 TextBox。它为执行“剪切”、“复制”、“粘贴”和“撤消”操作的 MenuItem 对象提供了 Click 事件处理程序。此示例要求已经创建一个名为 textBox1TextBox 控件。

Private Sub Menu_Copy(sender As System.Object, e As System.EventArgs)
    ' Ensure that text is selected in the text box.   
    If textBox1.SelectionLength > 0 Then
        ' Copy the selected text to the Clipboard.
        textBox1.Copy()
    End If
End Sub
 
Private Sub Menu_Cut(sender As System.Object, e As System.EventArgs)
    ' Ensure that text is currently selected in the text box.   
    If textBox1.SelectedText <> "" Then
        ' Cut the selected text in the control and paste it into the Clipboard.
        textBox1.Cut()
    End If
End Sub
 
Private Sub Menu_Paste(sender As System.Object, e As System.EventArgs)
    ' Determine if there is any text in the Clipboard to paste into the text box.
    If Clipboard.GetDataObject().GetDataPresent(DataFormats.Text) = True Then
        ' Determine if any text is selected in the text box.
        If textBox1.SelectionLength > 0 Then
            ' Ask user if they want to paste over currently selected text.
            If MessageBox.Show("Do you want to paste over current selection?", _
                "Cut Example", MessageBoxButtons.YesNo) = DialogResult.No Then
                ' Move selection to the point after the current selection and paste.
                textBox1.SelectionStart = textBox1.SelectionStart + _
                    textBox1.SelectionLength
            End If
        End If 
        ' Paste current text in Clipboard into text box.
        textBox1.Paste()
    End If
End Sub

Private Sub Menu_Undo(sender As System.Object, e As System.EventArgs)
    ' Determine if last operation can be undone in text box.   
    If textBox1.CanUndo = True Then
        ' Undo the last operation.
        textBox1.Undo()
        ' Clear the undo buffer to prevent last action from being redone.
        textBox1.ClearUndo()
    End If
End Sub
private void Menu_Copy(System.Object sender, System.EventArgs e)
 {
    // Ensure that text is selected in the text box.   
    if(textBox1.SelectionLength > 0)
        // Copy the selected text to the Clipboard.
        textBox1.Copy();
 }
 
 private void Menu_Cut(System.Object sender, System.EventArgs e)
 {   
     // Ensure that text is currently selected in the text box.   
     if(textBox1.SelectedText != "")
        // Cut the selected text in the control and paste it into the Clipboard.
        textBox1.Cut();
 }
 
 private void Menu_Paste(System.Object sender, System.EventArgs e)
 {
    // Determine if there is any text in the Clipboard to paste into the text box.
    if(Clipboard.GetDataObject().GetDataPresent(DataFormats.Text) == true)
    {
        // Determine if any text is selected in the text box.
        if(textBox1.SelectionLength > 0)
        {
          // Ask user if they want to paste over currently selected text.
          if(MessageBox.Show("Do you want to paste over current selection?", "Cut Example", MessageBoxButtons.YesNo) == DialogResult.No)
             // Move selection to the point after the current selection and paste.
             textBox1.SelectionStart = textBox1.SelectionStart + textBox1.SelectionLength;
        }
        // Paste current text in Clipboard into text box.
        textBox1.Paste();
    }
 }
 
 
 private void Menu_Undo(System.Object sender, System.EventArgs e)
 {
    // Determine if last operation can be undone in text box.   
    if(textBox1.CanUndo == true)
    {
       // Undo the last operation.
       textBox1.Undo();
       // Clear the undo buffer to prevent last action from being redone.
       textBox1.ClearUndo();
    }
 }
 
private:
   void Menu_Copy( System::Object^ /*sender*/, System::EventArgs^ /*e*/ )
   {
      // Ensure that text is selected in the text box.   
      if ( textBox1->SelectionLength > 0 )
      {
         // Copy the selected text to the Clipboard.
         textBox1->Copy();
      }
   }

   void Menu_Cut( System::Object^ /*sender*/, System::EventArgs^ /*e*/ )
   {
      // Ensure that text is currently selected in the text box.   
      if (  !textBox1->SelectedText->Equals( "" ) )
      {
         // Cut the selected text in the control and paste it into the Clipboard.
         textBox1->Cut();
      }
   }

   void Menu_Paste( System::Object^ /*sender*/, System::EventArgs^ /*e*/ )
   {
      // Determine if there is any text in the Clipboard to paste into the text box.
      if ( Clipboard::GetDataObject()->GetDataPresent( DataFormats::Text ) == true )
      {
         // Determine if any text is selected in the text box.
         if ( textBox1->SelectionLength > 0 )
         {
            // Ask user if they want to paste over currently selected text.
            if ( MessageBox::Show( "Do you want to paste over current selection?",
               "Cut Example", MessageBoxButtons::YesNo ) == ::DialogResult::No )
            {
               // Move selection to the point after the current selection and paste.
               textBox1->SelectionStart = textBox1->SelectionStart + textBox1->SelectionLength;
            }
         }
         // Paste current text in Clipboard into text box.
         textBox1->Paste();
      }
   }

   void Menu_Undo( System::Object^ /*sender*/, System::EventArgs^ /*e*/ )
   {
      // Determine if last operation can be undone in text box.   
      if ( textBox1->CanUndo == true )
      {
         // Undo the last operation.
         textBox1->Undo();
         // Clear the undo buffer to prevent last action from being redone.
         textBox1->ClearUndo();
      }
   }
private void Menu_Copy(Object sender, System.EventArgs e)
{
    // Ensure that text is selected in the text box.   
    if (textBox1.get_SelectionLength() > 0) {
        // Copy the selected text to the Clipboard.
        textBox1.Copy();
    }
} //Menu_Copy

private void Menu_Cut(Object sender, System.EventArgs e)
{
    // Ensure that text is currently selected in the text box.   
    if (!(textBox1.get_SelectedText().Equals(""))) {
        // Cut the selected text in the control and paste it 
        //into the Clipboard.
        textBox1.Cut();
    }
} //Menu_Cut

private void Menu_Paste(Object sender, System.EventArgs e)
{
    // Determine if there is any text in the Clipboard to paste 
    // into the text box.
    if(Clipboard.GetDataObject().GetDataPresent(DataFormats.Text) == true) {
        // Determine if any text is selected in the text box.
        if (textBox1.get_SelectionLength() > 0) {
            // Ask user if they want to paste over currently selected text.
            if (MessageBox.Show("Do you want to paste over current"
                + "selection?","Cut Example",
                MessageBoxButtons.YesNo).Equals(get_DialogResult().No)) {
                // Move selection to the point after the current 
                // selection and paste.
                textBox1.set_SelectionStart(textBox1.get_SelectionStart() 
                    + textBox1.get_SelectionLength());
            }
        }
        // Paste current text in Clipboard into text box.
        textBox1.Paste();
    }
} //Menu_Paste

private void Menu_Undo(Object sender, System.EventArgs e)
{
    // Determine if last operation can be undone in text box.   
    if (textBox1.get_CanUndo() == true) {
        // Undo the last operation.
        textBox1.Undo();
        // Clear the undo buffer to prevent last action from being redone.
        textBox1.ClearUndo();
    }
} //Menu_Undo

平台

Windows 98、Windows 2000 SP4、Windows CE、Windows Millennium Edition、Windows Mobile for Pocket PC、Windows Mobile for Smartphone、Windows Server 2003、Windows XP Media Center Edition、Windows XP Professional x64 Edition、Windows XP SP2、Windows XP Starter Edition

.NET Framework 并不是对每个平台的所有版本都提供支持。有关受支持版本的列表,请参见系统要求

版本信息

.NET Framework

受以下版本支持:2.0、1.1、1.0

.NET Compact Framework

受以下版本支持:2.0、1.0

请参见

参考

TextBoxBase 类
TextBoxBase 成员
System.Windows.Forms 命名空间