次の方法で共有


TextBoxBase.CanUndo プロパティ

定義

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

public:
 property bool CanUndo { bool get(); };
[System.ComponentModel.Browsable(false)]
public bool CanUndo { get; }
[<System.ComponentModel.Browsable(false)>]
member this.CanUndo : bool
Public ReadOnly Property CanUndo As Boolean

プロパティ値

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

属性

次のコード例では、 派生クラスを使用 TextBoxします。 切り取り、コピー、貼り付け、および元に戻す操作を実行するオブジェクトのMenuItemイベント ハンドラーを提供Clickします。 この例では、 という名前textBox1TextBoxコントロールが作成されている必要があります。

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 ))
      {
         // 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)
      {
         // 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))
    {
        // 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)
    {
       // 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

注釈

このメソッドが を返す true場合は、 メソッドを Undo 呼び出して、テキスト ボックス内の最後の操作を元に戻すことができます。 このメソッドは、 が発生した Popup 場合、または 上の MenuItemボタン ToolBar の状態を管理するコードで使用して、テキスト ボックス コントロールで前の操作を元に戻す機能を有効または無効にすることができます。

適用対象

こちらもご覧ください