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を愛用