2014-12-31 67 views
-3

我試圖建立一個遊戲,我總是清除屏幕,但這使它滯後。所以,爲了使它不滯後,我可以清除特定的文本嗎?我可以從控制檯清除特定文本嗎?

+1

可能重複(http://stackoverflow.com/questions/2370695/rewriting-characters-in-command-window ) – Chris

+1

我認爲在命令行應用程序中獲得乾淨刷新的可能性,即使替換文本,也是非常渺茫的。你有沒有想過一個WPF RichTextBox的方法?這也不是超級表演,但它很容易,不會閃爍。 – Brannon

+0

我使蛇,所以文本的位置總是改變 – gil

回答

1

如果你只想刪除最後一個字符,然後簡單地使用console backspace\ b焦炭

Console.Write("\b"); 

如果你想清除只有一個字符,你可以用Console.SetCursorPosition(int, int)到達該點,則寫入空

Console.SetCursorPosition(Console.CursorLeft - 1, Console.CursorTop); 
Console.WriteLine(" "); 

要刪除多個字符,你可以存儲在一個變量的當前Console.CursorLeft並使用Console.SetCursorPosition(--variablename, Console.CursorTop)該值在循環中刪除許多字符 你要!

例如: - 如果你想刪除當前控制檯行,然後

public static void RemoveCurrentConsoleLine() 
{ 
    int currentCursorLine = Console.CursorTop; 
    Console.SetCursorPosition(0, Console.CursorTop); 
    Console.Write(new string(' ', Console.WindowWidth)); 
    Console.SetCursorPosition(0, currentCursorLine); 
} 

Console.WriteLine("Top 1 Line"); 
Console.WriteLine("Top 2 Line"); 
Console.WriteLine("Top 3 Line"); 
Console.SetCursorPosition(0, Console.CursorTop - 1); 
ClearCurrentConsoleLine(); 

然後輸出將是唯一進入前2行。第三線將被刪除: - [在命令窗口重寫字符]的

Top 1 Line 
Top 2 Line 

For more information Refer Here