次の方法で共有


TextBoxBase.SelectionStart プロパティ

テキスト ボックスで選択されているテキストの開始点を取得または設定します。

Public Property SelectionStart As Integer
[C#]
public int SelectionStart {get; set;}
[C++]
public: __property int get_SelectionStart();public: __property void set_SelectionStart(int);
[JScript]
public function get SelectionStart() : int;public function set SelectionStart(int);

プロパティ値

テキスト ボックスで選択されているテキストの開始点。

例外

例外の種類 条件
ArgumentException プロパティに代入された値が 0 未満です。

解説

コントロールでテキストが選択されていない場合、このプロパティは新しいテキストの挿入位置を示します。このプロパティがコントロール内のテキストの長さを超えた位置に設定されている場合、開始点は最後の文字の後ろになります。テキスト ボックス コントロールでテキストが選択されているとき、このプロパティを変更すると SelectionLength プロパティの値が小さくなる場合があります。 SelectionStart プロパティで示される位置より後ろにあるコントロール内の残りのテキストが SelectionLength プロパティの値未満の場合、 SelectionLength プロパティの値は自動的に小さくなります。 SelectionStart プロパティの値によって、 SelectionLength プロパティの値が大きくなることはありません。

メモ    SelectionStart をカレットのテキスト ボックス内での移動先の位置に設定し、 SelectionLength プロパティの値を 0 に設定すると、プログラムによってテキスト ボックス内でカレットを移動できます。カレットを移動するには、テキスト ボックスにフォーカスがあることが必要です。

使用例

[Visual Basic, C#, C++] 派生クラス TextBox を使用する例を次に示します。切り取り、コピー、貼り付け、元に戻すなどの各操作を実行する MenuItem オブジェクトの Click イベント ハンドラを用意します。この例は、 textBox1 という名前の TextBox コントロールが作成されていることを前提にしています。

 
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


[C#] 
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();
    }
 }
 

[C++] 
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(S""))
        // 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(S"Do you want to paste over current selection?", S"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();
    }
 }
 

[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

必要条件

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ, .NET Compact Framework - Windows CE .NET

参照

TextBoxBase クラス | TextBoxBase メンバ | System.Windows.Forms 名前空間