Обработка отмены и повтора в поле форматированного текста

Я расширил поле форматированного текста, чтобы выделить синтаксис, используя функции выбора, доступные в классе текстового поля Rich. Однако в процессе я потерял возможность обрабатывать отмену и повтор в текстовом поле. Когда я делаю отмену, все, что он делает, это выбирает последнее слово, которое я выделил и выделил программно.

Есть ли решение для обработки такого рода сценария, мне нужна функция отмены / повтора вместе с возможностью выбора фрагментов текста и изменения их цвета фона и т. Д.?

ваше здоровье

Красный дракон


person redDragonzz    schedule 19.05.2011    source источник


Ответы (1)


Мне кажется, ваш дизайн ошибочен.

Для выделения синтаксиса лучше хранить текст и форматирование отдельно. Смешивая их, как вы это сделали, вы очень затруднили выполнение отмены. Вы больше не можете полагаться на элемент управления, потому что вы объединяете редактирование текста с редактированием форматирования.

Вы не думали использовать что-то вроде Scintilla вместо того, чтобы снова пытаться решить эту проблему?

person David Heffernan    schedule 19.05.2011
comment
Нет, я не использовал Scintilla, попробую. Но я надеялся разработать свою собственную легкую среду IDE с подсветкой синтаксиса, но нет никакого прогресса, если невозможно отменить или повторить эту вещь !! - person redDragonzz; 19.05.2011
comment
Как ты предлагаешь мне это сделать? - person redDragonzz; 19.05.2011
comment
Я бы использовал обертки ScintillaNet. Я не вижу смысла пытаться написать свою собственную версию этого, если вам не нужен более функциональный элемент управления. - person David Heffernan; 19.05.2011