コード例 #1
0
        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);
        }
コード例 #2
0
            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);
            }
コード例 #3
0
        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);
        }