Share via


TextBoxBase.CanUndo 属性

获取一个值,该值指示用户在文本框控件中能否撤消前一操作。

**命名空间:**System.Windows.Forms
**程序集:**System.Windows.Forms(在 system.windows.forms.dll 中)

语法

声明
Public ReadOnly Property CanUndo As Boolean
用法
Dim instance As TextBoxBase
Dim value As Boolean

value = instance.CanUndo
public bool CanUndo { get; }
public:
property bool CanUndo {
    bool get ();
}
/** @property */
public boolean get_CanUndo ()
public function get CanUndo () : boolean

属性值

如果用户可以撤消在文本框控件中执行的前一操作,则为 true;否则为 false

备注

如果此方法返回 true,则可以调用 Undo 方法来撤消文本框中的上一操作。可以在 MenuItemPopup 事件中使用此方法,或在管理 ToolBar 上的按钮状态的代码中使用此方法,以启用或禁用撤消文本框控件中的前一操作的功能。

示例

下面的代码示例使用派生类 TextBox。它为执行“剪切”、“复制”、“粘贴”和“撤消”操作的 MenuItem 对象提供了 Click 事件处理程序。此示例要求已经创建一个名为 textBox1TextBox 控件。

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
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:
   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(Object sender, System.EventArgs e)
{
    // Ensure that text is selected in the text box.   
    if (textBox1.get_SelectionLength() > 0) {
        // Copy the selected text to the Clipboard.
        textBox1.Copy();
    }
} //Menu_Copy

private void Menu_Cut(Object sender, System.EventArgs e)
{
    // Ensure that text is currently selected in the text box.   
    if (!(textBox1.get_SelectedText().Equals(""))) {
        // Cut the selected text in the control and paste it 
        // into the Clipboard.
        textBox1.Cut();
    }
} //Menu_Cut

private void Menu_Paste(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.get_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).Equals(DialogResult.No)) {
                // Move selection to the point after the current selection 
                // and paste.
                textBox1.set_SelectionStart(textBox1.get_SelectionStart()
                    + textBox1.get_SelectionLength());
            }
        }
        // Paste current text in Clipboard into text box.
        textBox1.Paste();
    }
} //Menu_Paste

private void Menu_Undo(Object sender, System.EventArgs e)
{
    // Determine if last operation can be undone in text box.   
    if (textBox1.get_CanUndo() == true) {
        // Undo the last operation.
        textBox1.Undo();
        // Clear the undo buffer to prevent last action from being redone.
        textBox1.ClearUndo();
    }
} //Menu_Undo

平台

Windows 98、Windows 2000 SP4、Windows CE、Windows Millennium Edition、Windows Mobile for Pocket PC、Windows Mobile for Smartphone、Windows Server 2003、Windows XP Media Center Edition、Windows XP Professional x64 Edition、Windows XP SP2、Windows XP Starter Edition

.NET Framework 并不是对每个平台的所有版本都提供支持。有关受支持版本的列表,请参见系统要求

版本信息

.NET Framework

受以下版本支持:2.0、1.1、1.0

.NET Compact Framework

受以下版本支持:2.0

请参见

参考

TextBoxBase 类
TextBoxBase 成员
System.Windows.Forms 命名空间
Cut
Copy
Paste
Undo
Clear