Управление размером окна консоли 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 - то есть могу доработать ваш сайт или помочь с веб-программированием. Пишите сюда.
Программы на заказ
Отзывы
Контакты