Dưới đây là chỉ một số mã tôi quyết định lộn xộn xung quanh với:
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";
}
Đó là cơ bản tôi viết tính năng Undo của riêng tôi. Tất cả những gì tôi đang làm là lưu trữ giá trị cũ trong một biến bộ đệm, và giá trị mới trong một biến bộ đệm thứ hai. Mỗi khi văn bản thay đổi, các giá trị này nhận được cập nhật. Sau đó, nếu người dùng nhấn "CTRL-Z", nó sẽ thay thế văn bản bằng giá trị cũ. Hack? Một chút. Nhưng, nó hoạt động cho hầu hết các phần.
ý của bạn là "theo chương trình"? :) –
haha .... vâng, chắc chắn có nghĩa là lập trình –