使用System.Console.Write禁用Scroll

时间:2009-04-11 04:38:32

标签: vb.net console

是否可以使用Console.Write在典型的80x25控制台的最右下角放置一个字符,而无需让控制台滚动该行?这是我正在使用的代码......

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

这不符合我的意愿。任何建议或替代方案?我已经测试过SetCursorPosition已经使用了0,0坐标系。使用WindowWidth-1 / Height-1应该把我放在屏幕的右下角......它确实如此,但是然后Console.Write将“x”放下并继续到下一行。

3 个答案:

答案 0 :(得分: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()

答案 1 :(得分:0)

问题在于,无论何时写入特定行中的最后一个位置,控制台始终会将您移至下一行。你可以做的最接近的事情是写到倒数第二个位置:

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

答案 2 :(得分:0)

我用肮脏但功能性的方式解决了它。

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

盒子的一侧会闪烁一毫秒,但我认为没有人会注意到:)