TextBoxBase.CanUndo プロパティ

テキスト ボックス コントロールでユーザーが直前の操作を元に戻すことができるかどうかを示す値を取得します。

Public ReadOnly Property CanUndo As Boolean
[C#]
public bool CanUndo {get;}
[C++]
public: __property bool get_CanUndo();
[JScript]
public function get CanUndo() : Boolean;

プロパティ値

テキスト ボックス コントロールで直前に実行された操作を元に戻すことができる場合は true 。それ以外の場合は false

解説

このメソッドが true を返す場合は、 Undo メソッドを呼び出して、テキスト ボックスで直前に実行された操作を元に戻すことができます。 MenuItemPopup イベント、または ToolBar のボタンの状態を管理するコードでこのメソッドを使用すると、テキスト ボックス コントロールで直前に実行された操作を元に戻す機能を有効または無効にできます。

使用例

[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 ファミリ

参照

TextBoxBase クラス | TextBoxBase メンバ | System.Windows.Forms 名前空間 | Cut | Copy | Paste | Undo | Clear