【发布时间】:2018-09-13 03:47:05
【问题描述】:
所以我正在开发一个文本编辑器,使用菜单条作为所有内容的主要控制区域。在我的编辑选项卡中,我有一个撤消按钮,用于撤消输入的最后一个单词。
public partial class frmMain : Form
{
Stack<string> undoList = new Stack<string>();
private void txtMain_TextChanged(object sender, EventArgs e)
{
hasSaved = false;
txtMain = (RichTextBox)sender;
undoList.Push(txtMain.Text);
}
private void tsUndo_Click(object sender, EventArgs e)
{
undoList.Pop();
}
}
当我单击撤消时,它不会影响任何内容。我对编程很陌生,所以我看不到这个问题。有人能启发我吗?
【问题讨论】:
-
您只是从数组中删除一个元素。你不会告诉按钮做某事。
-
那是有道理的,你知道我应该使用什么代码来真正让按钮做我想做的事吗?
-
txtMain.Text = undoList.Pop();?.Pop()所做的只是从undoList中删除该项目并将其返回给您。恐怕 C# 不是通灵的。 -
TextChanged 是错误的挂钩事件 - 您将每个字母缓存为 UnDo 项,无法分辨哪些字母组合在一起构成单词/句子/条目/单元