Библиотеки, такие как Curses, делают это так же, как оконные менеджеры работают в графической среде. Элементы управления, такие как окна, кнопки, флажки, все определяются библиотекой.
Вместо WriteLining на экран, вы пишете текст в окно или задаете текст какого-либо элемента управления. Библиотека отслеживает окна, перекрытия, эффекты границ, тени и поведение при перетаскивании (если поддерживается мышь). Он создает буфер символов из символов, цвета переднего плана и фона.
Опубликованный пример goto (x, y) будет работать, но если реализация сделает это для каждого символа, производительность заметно снизится. Чтобы добиться быстроты, когда вы вносите изменения в некоторые текстовые или другие свойства, библиотека знает прямоугольные области, которые должны быть обновлены из буфера символов, и записывает новые символьные данные для этой области на экран одним фрагментом с оптимизированными вызовами. к видео драйверам.
В отличие от базовых консольных приложений, которые просто выводят на экран каждый печатный символ, ввод с клавиатуры в этих расширенных приложениях перехватывается, и такие символы более явно записываются (или не записываются, в случае горячих клавиш вашего приложения) правильно окно или что-то еще.
Я бы хотел, чтобы в .Net была встроена целая библиотека оконных окон консоли ... ... [вздох] Я думаю, что эти старые консольные приложения выглядят довольно мило.