2015-08-17 19 views
14

Attualmente sto lottando con tabelle all'interno di RichTextBox in WPF. In WPF, le tabelle non hanno righe e colonne, hanno solo righe, ognuna con un certo numero di celle. Quando un utente preme il pulsante "Aggiungi colonna", il mio programma aggiunge una nuova cella a ciascuna riga.C'è un modo per raggruppare o disabilitare temporaneamente la cronologia degli annullamenti per un oggetto RichTextBox?

Il problema con l'utilizzo di questo metodo è dopo che un utente aggiunge una colonna, se si preme annulla, rimuove ogni cella una per una, ovviamente non è ciò che l'utente si aspetterebbe.

Qualcuno conosce un modo per disabilitare temporaneamente l'aggiunta di azioni alla coda di annullamento o un modo per raggruppare le azioni di annullamento o qualsiasi altra soluzione al mio problema?

risposta

16

Se si vuole gruppo annullare le azioni (piuttosto che disabilita annullare del tutto), è possibile raggruppare un insieme di modifiche programmatiche via TextBoxBase.BeginChange() poi, dopo aver effettuato le modifiche, TextBoxBase.EndChange(), vale a dire:

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

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

o, equivalentemente, è possibile chiamare TextBoxBase.DeclareChangeBlock() all'interno di un'istruzione using:

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

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

Oh, carino, utile sapere, grazie. – Loocid

2

è possibile disattivare undo impostando IsUndoEnabled proprietà su false oppure è possibile limitare l'annullamento utilizzando UndoLimit. è possibile disattivare l'annullamento impostando questa proprietà su 0, vale a dire., UndoLimit="0"

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

Questo non era esattamente quello che cercavo. Ho ancora bisogno che gli utenti siano in grado di annullare dopo che il programma ha giocato con il tavolo. – Loocid

Problemi correlati