2009-04-11 53 views
0

是否可以使用Console.Write將單個字符置於典型的80x25控制檯的最右側,而不必讓控制檯向上滾動該行?這是我正在使用的代碼...使用System.Console.Write禁用滾動

Imports System 
Console.SetCursorPosition(Console.WindowWidth-1, Console.WindowHeight-1) 
Console.Write("x") 

這不像我想要的那樣工作。任何建議或替代?我已經測試過SetCursorPosition確實使用了0,0座標系。使用WindowWidth-1/Height-1應該把我放在屏幕的右下角......它的作用是,然後Console.Write將「x」放下並繼續到下一行。

回答

4

您可以嘗試移動緩衝區。例如:

Console.WriteLine("Top") 
Console.SetCursorPosition(Console.WindowWidth - 1, Console.WindowHeight - 1) 
Console.Write("x") 
Console.MoveBufferArea(0, 0, 80, 25, 0, 1) 
Console.ReadLine() 
+0

完美的作品。謝謝! – Valdemarick 2009-04-11 20:46:28

+0

不客氣,很高興我能幫上忙。 – aphoria 2009-04-13 01:20:58

0

問題是,無論何時寫入特定行中的最後一個位置,控制檯都會將您移至下一行。您可以做的最接近的事情是寫入第二個最後位置:

 Console.CursorLeft = Console.WindowWidth - 1; 
     Console.Write("X"); 
0

我以骯髒但功能強大的方式解決了這個問題。

Console.SetCursorPosition(79, 24); //last pos 
Console.BufferWidth++; 
Console.Write("x"); 
Console.BufferWidth--; 
Console.ReadKey(); 

盒子的側面的確閃爍一毫秒,但我不認爲任何人都沒有注意到:)