TextBoxBase.ClearUndo メソッド
テキスト ボックスのアンドゥ バッファから直前に実行された操作に関する情報を削除します。
Public Sub ClearUndo()
[C#]
public void ClearUndo();
[C++]
public: void ClearUndo();
[JScript]
public function ClearUndo();
解説
このメソッドを使用すると、アプリケーションの状態に基づいて、元に戻す操作が繰り返されるのを防ぐことができます。
使用例
[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 | CanUndo | Clear