Меню в консольном приложении - C#
Формулировка задачи:
Доброго времени суток. Вот необходимо сделать интерфейс в консольном приложении. Я его сделал с помощью Switch case, однако вот ту у меня всплыл вопрос. Необходимо сделать так как это было в DOS'е. Т.е. в меню я буду выбирать пункты не вводя цифры 1, 2 и т.д. а с помощью стрелок на клавиатуре (верх вниз). И откровенно говоря я понятия не имею как это сделать. Даже в каком направлении двигаться не знаю...
Решение задачи: «Меню в консольном приложении»
textual
Листинг программы
using System.Text; using System; namespace Menu { class Program { delegate void method(); static void Main(string[] args) { string[] items = { "Действие 1", "Действие 2", "Действие 3", "Выход" }; method[] methods = new method[] { Method1, Method2, Method3, Exit}; ConsoleMenu menu = new ConsoleMenu(items); int menuResult; do { menuResult = menu.PrintMenu(); methods[menuResult](); Console.WriteLine("Для продолжения нажмите любую клавишу"); Console.ReadKey(); } while (menuResult != items.Length - 1); } static void Method1() { Console.WriteLine("Выбрано действие 1"); } static void Method2() { Console.WriteLine("Выбрано действие 2"); } static void Method3() { Console.WriteLine("Выбрано действие 3"); } static void Exit() { Console.WriteLine("Приложение заканчивает работу!"); } } class ConsoleMenu { string[] menuItems; int counter = 0; public ConsoleMenu(string[] menuItems) { this.menuItems = menuItems; } public int PrintMenu() { ConsoleKeyInfo key; do { Console.Clear(); for (int i = 0; i < menuItems.Length; i++) { if (counter == i) { Console.BackgroundColor = ConsoleColor.Cyan; Console.ForegroundColor = ConsoleColor.Black; Console.WriteLine(menuItems[i]); Console.BackgroundColor = ConsoleColor.Black; Console.ForegroundColor = ConsoleColor.White; } else Console.WriteLine(menuItems[i]); } key = Console.ReadKey(); if (key.Key == ConsoleKey.UpArrow) { counter--; if (counter == -1) counter = menuItems.Length - 1; } if (key.Key == ConsoleKey.DownArrow) { counter++; if (counter == menuItems.Length) counter = 0; } } while (key.Key != ConsoleKey.Enter); return counter; } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д