Vb.net 使用System.Console.Write禁用滚动

Vb.net 使用System.Console.Write禁用滚动,vb.net,console,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

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

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

这不是我想要的工作方式。有什么建议或选择吗?我已经测试过SetCursorPosition是否使用0,0坐标系。使用WindowWidth-1/Height-1应该将我放在屏幕的右下角。。。写就是把“x”放下来继续写下一行。

问题是,每当你写到某一行的最后一个位置时,控制台总是把你移到下一行。您可以做的最接近的事情是写入到最后一个位置:

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

问题是,每当您写入特定行中的最后一个位置时,控制台总是将您移动到下一行。您可以做的最接近的事情是写入到最后一个位置:

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

您可以尝试移动缓冲区。例如:

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

您可以尝试移动缓冲区。例如:

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

我用一种肮脏但实用的方法解决了它

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

盒子的侧面确实闪烁了一毫秒,但我想没有人会注意到:)

我用一种肮脏但实用的方式解决了它

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

盒子的侧面确实闪烁了一毫秒,但我想没有人会注意到:)

我知道我会的。我敢打赌我不是一个人,我知道我会的。我敢打赌,我并不是唯一一个这样做的人。要做到这一点,缓冲区必须比控制台的尺寸更大,这在许多控制台上会导致令人讨厌的滚动条。在这一点上,您可能只是通过console-API向上滚动。要使其工作,缓冲区必须大于控制台尺寸,这在许多控制台上会导致令人讨厌的滚动条。在这一点上,可以通过控制台API向上滚动。