información es un ejemplo de código que decidí perder el tiempo con:
string buffer = String.Empty;
string buffer2 = String.Empty;
public Form3()
{
InitializeComponent();
this.richTextBox1.KeyDown += new KeyEventHandler(richTextBox1_KeyDown);
this.richTextBox1.TextChanged += new EventHandler(richTextBox1_TextChanged);
}
void richTextBox1_TextChanged(object sender, EventArgs e)
{
buffer2 = buffer;
buffer = richTextBox1.Text;
}
void richTextBox1_KeyDown(object sender, KeyEventArgs e)
{
if (e.Control && e.KeyCode == Keys.Z)
{
this.richTextBox1.Text = buffer2;
}
}
private void button1_Click(object sender, EventArgs e)
{
richTextBox1.Text = "Changed";
}
Se trata básicamente de mí escribir mi propia función Deshacer. Todo lo que hago es almacenar el valor anterior en una variable de memoria intermedia y el nuevo valor en una segunda variable de memoria intermedia. Cada vez que el texto cambia, estos valores se actualizan. Luego, si el usuario pulsa "CTRL-Z", reemplaza el texto con el valor anterior. ¿Cortar? Un poco. Pero, funciona en su mayor parte.
¿quisiste decir "programáticamente"? :) –
jaja .... sí, Definitivamente significó programáticamente –