Правя прост xhtml редактор с подчертаване на синтаксиса. Проблемът е, че в richtextbox undo history всичко се съхранява. Дори маркирането ми се променя. Вече открих, че има richtextbox.UndoActionName
, което трябва да бъде "Неизвестно", ако промените richtextbox програмно. Така че опитах нещо подобно, когато се натисне ctrl+z:
while(richtextbox.CanUndo && richtextbox.UndoActionName == "Unknown"){
richtextbox.Undo();
}
Което току-що избра целия ми текст и всъщност не отмени нищо (просто продължи да се повтаря, докато не го спра...). Така че въпросът ми е дали трябва сам да посоча някъде името на undoactionname или мога да променя richtextbox, за да записва хронологията на отмените само за въвеждане? Благодаря.
Редактиране: Би било страхотно, ако мога да изпратя съобщение до richtextbox, за да спра да записвам хронологията на отмените, докато маркирам или по някакъв начин да изключа или действия с Неизвестно име, има ли начин да направя това?
Редактиране 2: Е, направих го по глупавия начин, съхранявам целия текст в свързан списък и когато правя отново, изчиствам полето с богат текст и го запълвам с последния елемент от списъка и след това отново подчертайте. Може би това помага на някого