我目前正在與RichTextBoxs中的WPF裏面的表搏鬥。在WPF中,表格沒有行和列,它們只有行,每行都有一定數量的單元格。當用戶按下「添加列」按鈕時,我的程序會爲每一行添加一個新單元格。有沒有辦法對RichTextBox進行分組或暫時禁用撤消歷史記錄?
使用此方法的問題是在用戶添加一列後,如果他們按下撤消,它會逐個刪除每個單元格,顯然不是用戶期望的。
有沒有人知道一種方法來臨時禁用添加到撤消隊列的操作,或者一種將撤消操作或任何其他解決方案分配給我的問題的方法?
我目前正在與RichTextBoxs中的WPF裏面的表搏鬥。在WPF中,表格沒有行和列,它們只有行,每行都有一定數量的單元格。當用戶按下「添加列」按鈕時,我的程序會爲每一行添加一個新單元格。有沒有辦法對RichTextBox進行分組或暫時禁用撤消歷史記錄?
使用此方法的問題是在用戶添加一列後,如果他們按下撤消,它會逐個刪除每個單元格,顯然不是用戶期望的。
有沒有人知道一種方法來臨時禁用添加到撤消隊列的操作,或者一種將撤消操作或任何其他解決方案分配給我的問題的方法?
如果你想組撤消的操作(而不是禁止將其完全消除),您可以將通過TextBoxBase.BeginChange()
一套方案變動然後,進行更改,TextBoxBase.EndChange()
之後,即:
richTextBox.BeginChange();
try
{
// Add column
// For each row, add a cell to the column.
}
finally
{
richTextBox.EndChange();
}
或者等價地,你可以調用TextBoxBase.DeclareChangeBlock()
一個using
語句中:
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" />
這並不完全是我之後的事情。我仍然需要用戶在程序擺弄桌子後才能撤消。 – Loocid
哦,很好,方便知道,謝謝。 – Loocid