[C#][Windows Formsアプリ][RichTextBox] Undo / Redoメソッド で入力内容を取り消したりやり直したりする

スポンサーリンク

はじめに

RichTextBoxでの入力内容を取り消したりやり直したりするには、
Undo()Redo() メソッドを使います。
これにより、ユーザーが行った変更を元に戻したり、再度適用することができます。

1. Undo() メソッドとは?

Undo() メソッドは、RichTextBoxで行った直前の変更を取り消します。
例えば、文字を削除したり、入力したテキストを元に戻したりする場合に使います。

基本の使い方

richTextBox1.Undo();  // 直前の変更を取り消す

このメソッドは、直前の操作に対して適用されるため、何回でも呼び出すことができます。

2. Redo() メソッドとは?

Redo() メソッドは、取り消した変更を再度適用します。
例えば、Undo() で取り消した内容をやり直したいときに使用します。

基本の使い方

richTextBox1.Redo();  // 直前の取り消し操作をやり直す

こちらも、ユーザーが Undo() を使って取り消した内容を再度元に戻すために使います。

3. 実用例:取り消しとやり直しの操作

using System;
using System.Windows.Forms;

namespace RichTextBoxUndoRedoSample
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void buttonUndo_Click(object sender, EventArgs e)
        {
            richTextBox1.Undo();  // 直前の操作を取り消す
        }

        private void buttonRedo_Click(object sender, EventArgs e)
        {
            richTextBox1.Redo();  // 取り消した操作をやり直す
        }

        private void buttonAddText_Click(object sender, EventArgs e)
        {
            richTextBox1.AppendText("新しいテキスト追加\n");
        }
    }
}

この例では、「取り消し」ボタンで直前の操作を取り消し、「やり直し」ボタンでその操作を再度適用します。
ユーザーの入力履歴を管理するのに便利です。

4. 注意点

  • Undo()Redo() を使うには、RichTextBoxの CanUndo または CanRedo プロパティで操作可能かを確認するのが一般的
  • 変更があった場合にのみ Undo() を呼び出すようにし、無駄な呼び出しを避ける
  • Undo()Redo() は内部で履歴を保持しているので、過去の変更をさかのぼって戻すことができます

例:操作可能かどうかを確認

if (richTextBox1.CanUndo)
{
    richTextBox1.Undo();
}

5. CanUndo / CanRedo プロパティ

  • CanUndo … 直前の操作を取り消し可能かどうかを確認するプロパティ
  • CanRedo … 取り消した操作をやり直し可能かどうかを確認するプロパティ

使用例

if (richTextBox1.CanUndo)
{
    richTextBox1.Undo();  // 操作が可能な場合のみUndo
}
else
{
    MessageBox.Show("取り消し操作はありません。");
}

まとめ

  • Undo() メソッドで直前の操作を取り消すことができる
  • Redo() メソッドで取り消した操作をやり直せる
  • CanUndoCanRedo を使って、操作が可能かどうかを確認する
  • テキストエディタの履歴管理や、ユーザー操作のやり直し機能に役立つ
Please follow and like us:

コメント

タイトルとURLをコピーしました