有人知道如何在控制台中创建有吸引力和可选择的项目吗?
当您将 yeoman 安装为 node.js 包并使用“yo”从命令行调用它时,
他们向我们展示了一个可滚动项目列表,可以使用上下箭头键进行选择。
是否有用于此目的的任何代码或库? (在 .NET 核心中)
最佳答案
解决方案的关键部分是:
- 您可以使用
Console.ReadKey()
来检测箭头键的按下 - 可以使用
Console.CursorTop
读写当前光标位置
使用这两个,这里是一个非常简单的代码,可以做你想做的事:
int optionsCount = 5;
int selected = 0;
bool done = false;
while (!done)
{
for (int i = 0; i < optionsCount; i++)
{
if (selected == i)
{
Console.ForegroundColor = ConsoleColor.Cyan;
Console.Write("> ");
}
else
{
Console.Write(" ");
}
Console.WriteLine(i);
Console.ResetColor();
}
switch (Console.ReadKey(true).Key)
{
case ConsoleKey.UpArrow:
selected = Math.Max(0, selected - 1);
break;
case ConsoleKey.DownArrow:
selected = Math.Min(optionsCount - 1, selected + 1);
break;
case ConsoleKey.Enter:
done = true;
break;
}
if (!done)
Console.CursorTop = Console.CursorTop - optionsCount;
}
Console.WriteLine($"Selected {selected}.");
关于c# - .NET Core 控制台应用程序中的交互式、可选择和可滚动项目,如 Yeoman 控制台,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39439673/