在最近探索的项目中,使用 Console.Clear( 擦除整个控制台屏幕)证明是有效的。然而,我们需要一种更精细的方法:仅清除特定行而不是整个控制台。
不幸的是,Console.Clear() 缺乏选择性地针对特定行的能力擦除。但是,您可以使用 Console.SetCursorPosition 函数导航到特定行号。一旦定位到所需的行上,您可以通过编写一系列跨越控制台窗口宽度的空格来清除它,从而有效地覆盖之前的文本。
为了简化此过程,我们定义一个名为 ClearCurrentConsoleLine() 的静态方法:
public static void ClearCurrentConsoleLine() { int currentLineCursor = Console.CursorTop; Console.SetCursorPosition(0, Console.CursorTop); Console.Write(new string(' ', Console.WindowWidth)); Console.SetCursorPosition(0, currentLineCursor); }
此方法确定当前行光标位置,设置光标回到该行的开头,在窗口宽度上写入空格以覆盖文本,然后将光标返回到其原始位置。
要说明此方法,请考虑以下示例:
Console.WriteLine("Test"); Console.SetCursorPosition(0, Console.CursorTop - 1); ClearCurrentConsoleLine();
执行时,此代码:
因此,“Test”将从控制台显示中删除,同时保留任何后续内容
要进一步探索,请参阅 Console.SetCursorPosition 的 MSDN 文档:
以上是您可以使用 C# 有选择地清除控制台中的特定行吗?的详细内容。更多信息请关注PHP中文网其他相关文章!