撤消Textbox的功能

sam*_*amy 5 c# winforms

我正在为TextBox开发一个非常简单的撤销功能,我有一个奇怪的问题.当我尝试从Stack包含所有更改的字符串中取出字符串并将它们放在文本框中时,我看不到任何更改.

我做了一个小调试标签,以检查这是否真的有效.我发现它在标签中工作,但在文本框中它使用自己的撤销功能.

有没有办法取消或覆盖文本框撤消并使用我自己的功能?

以下是我所做的更改的示例代码:

 private void Form1_KeyDown(object sender, KeyEventArgs e)
        if (e.KeyCode == Keys.Z && (ModifierKeys & Keys.Control) == Keys.Control)
            {
                nameTextBox.Text = undoName.GetLastChange(); //--> not working

                undoDebuglabel.Text = undoName.GetLastChange(); --> working
            }
}
Run Code Online (Sandbox Code Playgroud)

GetLastChange()从Stack类中获取信息.

这就像文本框不让我看到变化.可能是因为我使用相同的快捷方式CTRL + Z来做吗?

key*_*rdP 4

使用ClearUndo方法清除文本框自己的堆栈。尝试这个:

nameTextBox.ClearUndo();
nameTextBox.Text = undoName.GetLastChange();
Run Code Online (Sandbox Code Playgroud)