TextBoxBase.SelectionStart 속성

정의

텍스트 상자에서 선택한 텍스트의 시작 지점을 가져오거나 설정합니다.Gets or sets the starting point of text selected in the text box.

public:
 property int SelectionStart { int get(); void set(int value); };
[System.ComponentModel.Browsable(false)]
public int SelectionStart { get; set; }
member this.SelectionStart : int with get, set
Public Property SelectionStart As Integer

속성 값

텍스트 상자에서 선택한 텍스트의 시작 지점입니다.The starting position of text selected in the text box.

특성

예외

할당된 값이 0보다 작은 경우The assigned value is less than zero.

예제

예제 1Example 1

다음 코드 예제에서는 TextBox, 클래스를 파생 합니다.The following code example uses TextBox, a derived class. 쉽게 Click 에 대 한 이벤트 처리기 MenuItem 잘라내기, 복사, 붙여넣기 및 실행 취소 작업을 수행 하는 개체입니다.It provides Click event handlers for MenuItem objects that perform Cut, Copy, Paste, and Undo operations. 이 예제에서는 한 TextBox 라는 컨트롤 textBox1 만들었습니다.This example requires that a TextBox control named textBox1 has been created.

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(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 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

예제 2Example 2

다음 예제에서는 합니다 SelectionStart 의 속성을 TextBoxReadOnly 지정 하 여는 Focus 첫 번째 합니다.The following example sets the SelectionStart property of a TextBox that is ReadOnly by giving it the Focus first.

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
        this.button1.Click += new System.EventHandler(this.ButtonClickWork);
    }

    private void ButtonClickWork(object sender, EventArgs e)
    {
        this.textBox1.Text = "Hello world!";
        this.textBox1.ReadOnly = true;

        this.textBox1.Focus();
        this.textBox1.SelectionStart = this.textBox1.SelectionStart + 1;
        this.textBox1.SelectionLength = 1;
    }
}
Public Class Form1

    Private Sub ButtonClickWork(ByVal sender As System.Object, ByVal e As System.EventArgs) _
        Handles Button1.Click

        Me.TextBox1.Text = "Hello world!"
        Me.TextBox1.ReadOnly = True

        Me.TextBox1.Focus()
        Me.TextBox1.SelectionStart = Me.TextBox1.SelectionStart + 1
        Me.TextBox1.SelectionLength = 1
    End Sub
End Class

설명

컨트롤에서 선택 된 텍스트가이 속성에서 삽입 지점 또는 캐럿을 새 텍스트를 나타냅니다.If no text is selected in the control, this property indicates the insertion point, or caret, for new text. 컨트롤에서 텍스트의 길이 넘어서 위치로이 속성을 설정 하는 경우 선택 시작 위치를 마지막 문자 뒤에 놓입니다.If you set this property to a location beyond the length of the text in the control, the selection start position will be placed after the last character. 이 속성을 변경의 값을 줄이려면 수 텍스트를 텍스트 상자 컨트롤에서 선택 하는 경우는 SelectionLength 속성입니다.When text is selected in the text box control, changing this property might decrease the value of the SelectionLength property. 위치 후 컨트롤의 나머지 텍스트에 나타난 경우는 SelectionStart 속성의 값 보다 작습니다 합니다 SelectionLength 속성, 값은 SelectionLength 속성은 자동으로 감소 합니다.If the remaining text in the control after the position indicated by the SelectionStart property is less than the value of the SelectionLength property, the value of the SelectionLength property is automatically decreased. 값을 SelectionStart 속성에서 증가 생성 하지 않습니다는 SelectionLength 속성입니다.The value of the SelectionStart property never causes an increase in the SelectionLength property.

설정 하 여 선택한 입력란 내에서 프로그래밍 방식으로 이동할 수 있습니다 합니다 SelectionStart 하며 SelectionLength 속성입니다.You can programmatically move the selection within the text box by setting the SelectionStart and the SelectionLength properties.

설정 하 여 입력란 내에서 캐럿을 프로그래밍 방식으로 이동할 수 있습니다는 SelectionStart 캐럿을 이동 하 고 설정 하려는 텍스트 상자 내에서 위치를 SelectionLength 영 (0) 값으로 속성입니다.You can programmatically move the caret within the text box by setting the SelectionStart to the position within the text box where you want the caret to move to and set the SelectionLength property to a value of zero (0).

TextBox 이동할 선택 영역 또는 캐럿에 대 한 순서에 포커스가 있어야 합니다.The TextBox must have focus in order for the selection or the caret to be moved. 설정할 수 있습니다는 SelectionStart 의 속성을 TextBoxReadOnly 지정 하 여는 Focus 첫 번째입니다.You can set the SelectionStart property of a TextBox that is ReadOnly by giving it the Focus first.

적용 대상