Управление размером окна консоли C#
При разработке консольных приложений может потребоваться определить размер текущего окна или изменить размеры для конкретной цели. Обе эти задачи становятся возможными с помощью класса Console.
Класс Console
При написании приложения командной строки, которое выполняется в окне консоли, может потребоваться определить размер окна перед выводом текста. Например, вы можете показать ход выполнения программы с помощью пользовательского индикатора выполнения и хотите, чтобы этот индикатор использовал правильное количество символов для заполнения ширины окна. В других ситуациях вы можете установить высоту и ширину окна консоли, чтобы оно соответствовало дизайну вашего приложения.
Определение размера окна консоли возможно с помощью двух свойств класса Console. Они WindowWidth и WindowHeight. Оба являются статическими элементами, которые возвращают соответствующее измерение окна в символах. Если вы измените значения свойств, то окно консоли соответственно изменит свой размер.
Чтобы продемонстрировать это, добавьте следующий основной метод в новое консольное приложение и запустите программу. Этот код повторяется до тех пор, пока вы не нажмете клавишу Enter. Во время каждой итерации цикла считываются свойства windowHeight и windowWidth и отображается текущий размер окна. При нажатии одной из клавиш со стрелками окно расширяется или сжимается в зависимости от используемой клавиши.
namespace ConsoleResize { class Program { public static void Main(string[] args) { Console.CursorVisible = false; Console.ForegroundColor = ConsoleColor.Green; ConsoleKeyInfo keyInfo; Console.Title = "UpRead.Ru"; do { Console.CursorLeft = 0; Console.CursorTop = 1; Console.Write("({0}x{1}) ", Console.WindowWidth, Console.WindowHeight); keyInfo = Console.ReadKey(); switch (keyInfo.Key) { case ConsoleKey.LeftArrow: Console.WindowWidth = Math.Max(Console.WindowWidth - 1, 6); break; case ConsoleKey.RightArrow: Console.WindowWidth = Math.Min(Console.WindowWidth + 1, 100); break; case ConsoleKey.UpArrow: Console.WindowHeight = Math.Max(Console.WindowHeight - 1, 2); break; case ConsoleKey.DownArrow: Console.WindowHeight = Math.Min(Console.WindowHeight + 1, 60); break; } } while (keyInfo.Key != ConsoleKey.Enter); } } }
Автор этого материала - я - Пахолков Юрий. Я оказываю услуги по написанию программ на языках Java, C++, C# (а также консультирую по ним) и созданию сайтов. Работаю с сайтами на CMS OpenCart, WordPress, ModX и самописными. Кроме этого, работаю напрямую с JavaScript, PHP, CSS, HTML - то есть могу доработать ваш сайт или помочь с веб-программированием. Пишите сюда.
Отправляя сообщение я подтверждаю, что ознакомлен и согласен с политикой конфиденциальности данного сайта.