首页 > 解决方案 > 是否可以防止控制台的某些部分在 .NET 中滚动?

问题描述

图1

图 1:底部是滚动的,而顶部是静止的。

所以我正在编写一个 CLI .NET Core 应用程序。

图像的顶部保持不动,而底部则在顶部下方滚动。

如果可以更直接地访问控制台,那将相当容易。但正如我们在 C# 中一样,我所知道的不存在这样的(跨平台)访问。

那么,在没有平台锁定的情况下,我如何在这里实现预期的目标?

标签: c#.net-corecommand-line-interfacecross-platformascii-art

解决方案


如果它能给你一个想法,你可以试试这个。基于这篇文章C# 控制台:如何使控制台自动停止滚动?.

static readonly int maxLine = 10;
static int currentLine = 0;

static void Main(string[] args)
{
    setHeader();

    while (true)
    {
        writeLine("Please type and enter:");
        string value = Console.ReadLine();
        writeLine($"Your input is: {value}");
        writeLine($"Current Line: {currentLine}");

        if (currentLine > maxLine)
        {
            resetCursorPosition();
            writeLine($"Your input is: {value}");
            writeLine($"Current Line: {currentLine}");
        }
    }
}

private static void writeLine(string value)
{
    Console.WriteLine(value);
    currentLine = currentLine + 1;
}

private static void resetCursorPosition()
{
    Console.Clear();
    Console.SetCursorPosition(0, 0);
    currentLine = 0;

    setHeader();
}

private static void setHeader()
{
    writeLine("----------------------------------------------");
    writeLine("---------------MY CUSTOM HEADER---------------");
    writeLine("----------------------------------------------");
}

输出:
在此处输入图像描述


推荐阅读