Я реализовал пользовательский элемент управления в C # / Winforms, который делает такие вещи, как подсветка синтаксиса и автозаполнение.Я использую AutoScroll для управления прокруткой, и она прекрасно работает.
В настоящее время я вообще не оптимизировал (конечно, оптимизация важна, но я делаю это в последнюю очередь; функциональность - это то, что мне нужно в первую очередь),Я выполняю рендеринг огромных документов, и каждое нажатие клавиши повторно анализирует уязвимую строку, чтобы убедиться, что подсветка синтаксиса последовательна.
Прямо сейчас в моем методе с большой мясной краской я рисую каждую строку, ключевое слово и т. Д., Дажеесли он находится за пределами области клипа.Но независимо от того, насколько большой документ и сколько у меня комбинаций ключевых слов / выделенных фрагментов, он все равно работает чертовски быстро с небольшим объемом памяти и загрузкой ЦП.
Поэтому мой вопрос - выполните Graphics.Draw* методы делают какой-либо выбор?Например: если AutoScrollPosition находится далеко внизу документа & I Graphics.DrawString ( вставить некоторые координаты за пределы области рисования ), выполняется ли какая-либо фактическая работа?Также обратите внимание, что я запускаю VS на Win 7 внутри виртуальной машины, и она все еще работает быстро.Не то чтобы это проблема сейчас, но было бы неплохо иметь в виду на потом, когда дело доходит до фазы оптимизации.: D
Ура, Аарон