TextBoxBase.SelectionStart Özellik

Tanım

Metin kutusunda seçilen metnin başlangıç noktasını alır veya ayarlar.

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

Özellik Değeri

Metin kutusunda seçilen metnin başlangıç konumu.

Öznitelikler

Özel durumlar

Atanan değer sıfırdan küçük.

Örnekler

1. Örnek

Aşağıdaki kod örneği türetilmiş bir sınıfını kullanır TextBox. Kes, Kopyala, Yapıştır ve Geri Al işlemlerini gerçekleştiren nesneler için MenuItem olay işleyicileri sağlarClick. Bu örnek, adlı textBox1 bir TextBox denetimin oluşturulmasını gerektirir.

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

Örnek 2

Aşağıdaki örnek, ilkini vererek Focus özelliğini TextBoxReadOnly ayarlarSelectionStart.

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

Açıklamalar

Denetimde seçili metin yoksa, bu özellik yeni metin için ekleme noktasını veya şapka işaretini gösterir. Bu özelliği denetimdeki metnin uzunluğunu aşan bir konuma ayarlarsanız, seçim başlangıç konumu son karakterden sonra yerleştirilir. Metin kutusu denetiminde metin seçildiğinde, bu özelliğin değiştirilmesi özelliğin SelectionLength değerini azaltabilir. Özellik tarafından SelectionStart belirtilen konumdan sonra denetimdeki kalan metin özelliğin değerinden SelectionLength küçükse, özelliğin SelectionLength değeri otomatik olarak azaltılır. özelliğinin SelectionStart değeri hiçbir zaman özelliğinde artışa SelectionLength neden olmaz.

ve SelectionLength özelliklerini ayarlayarak SelectionStart seçimi metin kutusunun içinde program aracılığıyla taşıyabilirsiniz.

giriş işaretini metin kutusunun içinde şapka işaretinin taşınmasını istediğiniz konuma ayarlayarak SelectionStart ve özelliği sıfır (0) değerine ayarlayarak SelectionLength , giriş işaretini program aracılığıyla taşıyabilirsiniz.

Seçimin TextBox veya şapka işaretinin taşınması için odak öğesinin olması gerekir. özelliğini ReadOnlyTextBox, ilkini vererek ayarlayabilirsiniz SelectionStartFocus.

Şunlara uygulanır