C# 有没有办法对RichTextBox的撤消历史进行分组或临时禁用?
我现在正在和WPF里RichTextBox里的桌子搏斗。在WPF中,表没有行和列,它们只有行,每个行都有一定数量的单元格。当用户按下“添加列”按钮时,我的程序会向每一行添加一个新单元格 使用此方法的问题是,在用户添加列后,如果他们按“撤消”,则会逐个删除每个单元格,这显然不是用户所期望的C# 有没有办法对RichTextBox的撤消历史进行分组或临时禁用?,c#,wpf,richtextbox,C#,Wpf,Richtextbox,我现在正在和WPF里RichTextBox里的桌子搏斗。在WPF中,表没有行和列,它们只有行,每个行都有一定数量的单元格。当用户按下“添加列”按钮时,我的程序会向每一行添加一个新单元格 使用此方法的问题是,在用户添加列后,如果他们按“撤消”,则会逐个删除每个单元格,这显然不是用户所期望的 是否有人知道临时禁用向撤消队列添加操作的方法,或对撤消操作进行分组的方法,或我的问题的任何其他解决方案?您可以通过将IsUndoEnabled属性设置为false来禁用undo,也可以使用UndoLimit来限
是否有人知道临时禁用向撤消队列添加操作的方法,或对撤消操作进行分组的方法,或我的问题的任何其他解决方案?您可以通过将
IsUndoEnabled
属性设置为false
来禁用undo
,也可以使用UndoLimit
来限制撤消。通过将此属性设置为0
,即UndoLimit=“0”
如果要对撤消操作进行分组(而不是完全禁用撤消),则可以在进行更改后通过将一组编程更改分组,即:
或者,您也可以在语句内部调用:
using (richTextBox.DeclareChangeBlock())
{
// Add column
// For each row, add a cell to the column.
}
这不是我想要的。我仍然需要用户能够撤销后,该程序已经摆弄了表。
richTextBox.BeginChange();
try
{
// Add column
// For each row, add a cell to the column.
}
finally
{
richTextBox.EndChange();
}
using (richTextBox.DeclareChangeBlock())
{
// Add column
// For each row, add a cell to the column.
}