public Menu GetMenu(Menu menu, string header) { if (isInputMenu) { InputMenu inputMenu = new InputMenu(); inputMenu.GetMenu(menu, header); } else { var menuPainter = new ConsoleMenuPainter(menu); bool done = false; do { Console.CursorVisible = false; menuPainter.Paint(header); var keyInfo = Console.ReadKey(); switch (keyInfo.Key) { case ConsoleKey.UpArrow: menu.MoveUp(); break; case ConsoleKey.DownArrow: menu.MoveDown(); break; case ConsoleKey.Enter: done = true; break; } }while (!done); } Console.CursorVisible = true; return(menu); }
public Menu GetMenu(Menu menu, string header) { /// <summary> /// Returns a InputMenu /// </summary> /// <para> /// Return: A filled ItemContent list in menu /// </para> /// <returns></returns> var menuPainter = new ConsoleMenuPainter(menu); bool done = false; do { Console.CursorVisible = false; menuPainter.Paint(header); var keyInfo = Console.ReadKey(false); Console.CursorVisible = true; int Xoffset = menu.Items[menu.SelectedIndex].Length + 4; int Yoffset = 2 + menu.SelectedIndex; Console.SetCursorPosition(Xoffset, Yoffset); switch (keyInfo.Key) { case ConsoleKey.UpArrow: menu.MoveUp(); break; case ConsoleKey.DownArrow: menu.MoveDown(); break; case ConsoleKey.Enter: menu.ItemContent[menu.SelectedIndex] = Console.ReadLine(); break; default: Console.SetCursorPosition(0, menu.Items.Count + 2); Console.WriteLine(' '); Console.SetCursorPosition(Xoffset, Yoffset); Console.Write(keyInfo.KeyChar); menu.ItemContent[menu.SelectedIndex] = keyInfo.KeyChar + Console.ReadLine(); break; } if (InputMenu.isComplete(menu)) { done = true; } }while (!done); Console.SetCursorPosition(0, menu.Items.Count + 3); Console.CursorVisible = true; return(menu); }
public void MoveDown() => SelectedIndex = Math.Min(SelectedIndex + 1, Items.Count - 1); // Rör dig ett steg neråt om du inte är på lägsta nivån public Menu GetMenu(Menu menu, string header) { var menuPainter = new ConsoleMenuPainter(menu); // Skapar meny med hjälp av klassen Console.Clear(); // Så att consolen alltid ser likadan ut Console.WriteLine(header); // Skriv ut header for (int i = 0; i <= header.Length; i++) { Console.Write('-'); } bool done = false; while (!done) { menuPainter.Paint(); // Skriver ut menyn var keyInfo = Console.ReadKey(); // Läser av tangentnedtryckning switch (keyInfo.Key) { // Switch argument för de olika tangenterna case ConsoleKey.UpArrow: menu.MoveUp(); break; case ConsoleKey.DownArrow: menu.MoveDown(); break; // Om enter har tryckts gå ur meny loopen case ConsoleKey.Enter: done = true; break; } } return(menu); }