繁体   English   中英

有没有办法分组或暂时禁用RichTextBox的撤消历史记录?

[英]Is there a way to group or temporarily disable the undo history for a RichTextBox?

我目前正在与WPF中的RichTextBoxs中的表进行搏斗。 在WPF中,表没有行和列,它们只有行,每行都有一定数量的单元格。 当用户按下“添加列”按钮时,我的程序会向每一行添加一个新单元格。

使用此方法的问题是在用户添加列之后,如果他们按下撤消,它会逐个删除每个单元格,显然不是用户期望的。

有没有人知道暂时禁用撤消队列添加操作的方法,或者将撤消操作或其他解决方案分组到我的问题的方法?

如果要对撤消操作进行分组 (而不是完全禁用撤消),可以通过TextBoxBase.BeginChange()对一组程序更改进行TextBoxBase.BeginChange() ,然后在进行更改后,将TextBoxBase.EndChange() ,即:

        richTextBox.BeginChange();
        try
        {
            // Add column

            // For each row, add a cell to the column.
        }
        finally
        {
            richTextBox.EndChange();
        }

或者,等效地,您可以在using语句中调用TextBoxBase.DeclareChangeBlock()

        using (richTextBox.DeclareChangeBlock())
        {
            // Add column

            // For each row, add a cell to the column.
        }

您可以通过将IsUndoEnabled属性设置为false来禁用undo ,也可以使用UndoLimit限制撤消。 您可以通过将此属性设置为0来禁用撤消,即, UndoLimit="0"

<RichTextBox  Name="myRitchTextBox" IsUndoEnabled="False" />

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM