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

Loo*_*cid 14 c# wpf richtextbox

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

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

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

dbc*_*dbc 17

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

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

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

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

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

            // For each row, add a cell to the column.
        }
Run Code Online (Sandbox Code Playgroud)