6
我在WinForms 3.5中使用RichTextBox,發現當我以編程方式編輯包含的文本時,這些更改不再可用於內置的撤消功能。.NET RichTextBox撤消
有沒有辦法讓它變成可用於撤銷/重做?
我在WinForms 3.5中使用RichTextBox,發現當我以編程方式編輯包含的文本時,這些更改不再可用於內置的撤消功能。.NET RichTextBox撤消
有沒有辦法讓它變成可用於撤銷/重做?
這裏只是一些代碼,我決定與周圍的混亂:
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";
}
它基本上是我寫我自己的撤消功能。我所做的只是將舊值存儲在一個緩衝區變量中,並將新值存儲在第二個緩衝區變量中。每次文本更改時,這些值都會更新。然後,如果用戶點擊「CTRL-Z」,則用舊值替換文本。哈克?一點。但是,它在大多數情況下都有效。
您的意思是「以編程方式」嗎? :) – 2008-11-09 10:24:06
哈哈....是的,絕對意味着以編程方式 – 2008-11-09 12:07:25