Отключение прокрутки с помощью System.Console.Write - PullRequest
0 голосов
/ 11 апреля 2009

Можно ли использовать 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 кладет «х» и переходит к следующей строке.

Ответы [ 3 ]

4 голосов
/ 11 апреля 2009

Вы можете попробовать переместить область буфера. Например:

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 голосов
/ 22 октября 2009

Я решил это грязно, но функционально.

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

сторона окна мерцает миллисекунду, но я не думаю, что кто-нибудь когда-либо заметит :)

0 голосов
/ 11 апреля 2009

Проблема в том, что всякий раз, когда вы пишете в последнее место в определенной строке, консоль всегда перемещает вас к следующей строке. Самое близкое, что вы можете сделать, это написать во второе последнее местоположение:

        Console.CursorLeft = Console.WindowWidth - 1;
        Console.Write("X");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...