csharp 在C#中通过键盘箭头在控制台项之间导航

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了csharp 在C#中通过键盘箭头在控制台项之间导航相关的知识,希望对你有一定的参考价值。

class Menu
    {

        private Dictionary<int, string> options = new Dictionary<int, string>();

        private int activeItem = 1;

        public Menu()
        {
            this.options.Add(1, "Plus");
            this.options.Add(2, "Minus");
            this.options.Add(3, "Devide");        
            this.options.Add(4, "History");
        }

        public void RenderMenu()
        {
            Console.Clear();
            Console.WriteLine(this.options.Count);
            Console.WriteAscii("My Calculator", Color.Yellow);
            Console.WriteLine("Please use keyboard arrows to navigate between menu items:", Color.White);
            foreach (KeyValuePair<int, string> item in this.options)
            {
                string active = item.Key == this.activeItem ? "*" : " ";
                Console.WriteLine("({0}) {1}", Color.White, active, item.Value);
            }
            this.handleMenuNavigation();
        }

        public void handleMenuNavigation()
        {
            switch (Console.ReadKey(false).Key)
            {
                case ConsoleKey.Enter:
                    {
                        // Call the selected option.
                        this.CallOption();
                        return;
                    }
                case ConsoleKey.DownArrow:
                    {
                        if (this.activeItem < this.options.Count)
                        {
                            this.activeItem++;
                        }
                        else
                        {
                            this.activeItem = 1;
                        }
                        this.RenderMenu();
                        break;
                    }
                case ConsoleKey.UpArrow:
                    {
                        if (this.activeItem > 1)
                        {
                            this.activeItem--;
                        }
                        else
                        {
                            this.activeItem  = this.options.Count;
                        }
                        this.RenderMenu();
                        break;
                    }

            }
        
        }

        private void CallOption()
        {
            throw new NotImplementedException();
        }
    }

以上是关于csharp 在C#中通过键盘箭头在控制台项之间导航的主要内容,如果未能解决你的问题,请参考以下文章

csharp 在C#中通过引用传递var

在 PyCharm 中通过以前的命令进行控制台选项卡

无法在 Angular 2 中通过 npm 安装依赖项

如何在 iOS 中通过键盘显示 UIView

检测浏览器是不是在网页中有键盘/箭头键

如何在vim中通过命令向下滚动而不用方向键?