我正在为 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
}
}
GetLastChange() 从类中的 Stack
获取信息。
好像文本框不让我看到更改。
会不会是因为我使用了相同的快捷方式 CTRL + Z
来执行此操作?
最佳答案
使用 ClearUndo 清除文本框自身的堆栈方法。试试这个:
nameTextBox.ClearUndo();
nameTextBox.Text = undoName.GetLastChange();
关于c# - 文本框的撤消功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12990959/