Web検索はbingがおすすめ!

TextBoxに対して元に戻す(Undo)の操作をコードから実行する - C#

TextBoxでコードからアンドゥする方法を紹介します。

概要

TextBoxでundoの処理をコードから実行するには、TextBpxクラスのUndo()メソッドを呼び出します。

プログラム例

UI

下図のUIを作成します。TextBoxとButtonを配置します。TextBoxのMultilineプロパティを"True"に設定します。

コード

下記のコードを記述します。button1のClickイベントハンドラを実装します。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace TextBoxOperationFromCode
{
  public partial class FormMain : Form
  {
    public FormMain()
    {
      InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
      if (textBox1.CanUndo == true) {
        textBox1.Undo();
      }
    }
  }
}

解説

TextBoxのCanUndoプロパティを参照するとテキストボックスでUndoが可能かを調べることができます。メニューなどでアンドゥできない場合、[元に戻す]メニューをグレーアウトさせる際にはCanUndoプロパティを参照することで実現できます。
Undo可能な場合はTextBoxのUndoメソッドを呼び出しUndoを実行します。

実行結果

プロジェクトを実行します。下図のウィンドウが表示されます。


テキストボックスに下図の文字を入力しました。


テキストボックスで文章の一部を選択し、メニューの[削除]を選択し選択部分を削除します。(他の方法で削除や貼り付けをしてもか構いません)


削除後の状態です。


[button1]をクリックします。Undoが呼び出され、テキストボックスの文章が選択部分の削除前の状態に戻ります。



著者
iPentecのメインプログラマー
C#, ASP.NET の開発がメイン、少し前まではDelphiを愛用
掲載日: 2012-06-25
iPentec all rights reserverd.