在最近探索的專案中,使用 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中文網其他相關文章!