Как запретить пользователю прокручивать консоль?C#

Место общения программистов C#
Ответить
Anonymous
 Как запретить пользователю прокручивать консоль?

Сообщение Anonymous »

Я программирую консольное приложение, и иногда мне бы хотелось, чтобы пользователь не мог прокручивать вверх или вниз, чтобы пользователь видел только важную информацию. Я хочу, чтобы консоль отображала информацию для большей части буферного пространства и чтобы внизу была строка, в которой пользователю будет отображаться запрос, как в примере ниже.

Код: Выделить всё

Name: Example_Name
===========================
Added to Directory:        1 January 2025
Updated:                   5 January 2025
Size on Disk:              2 MG
.
Possible Actions:
Delete
Move
Rename
>
Я обнаружил, что, поскольку пользователь может прокручивать вверх и вниз, это может сбивать с толку.
Я пробовал очистить экран с помощью консоли. Clear(); и код управления ANSI Console.Write("\x1b[2J"); для удаления всего текста и простой записи в экранный буфер, но оба только перемещают буфер так, чтобы предыдущий текст находится над ним; Пользователь по-прежнему может прокручивать этот метод.
Я также рассматривал возможность использования Console.MoveBufferArea(), но он не работает с отрицательными значениями, которые, как я думал, будут перемещать резервное копирование буфера.
Как лучше всего изменить поведение консоли в моем приложении, чтобы пользователь не мог прокручивать или чтобы весь текст был удален?

Подробнее здесь: https://stackoverflow.com/questions/792 ... he-console
Гость
 Re: Как запретить пользователю прокручивать консоль?

Сообщение Гость »

попробуй

Код: Выделить всё

o:
int cl = Console.CursorLeft;
int ct = Console.CursorTop;
Console.SetCursorPosition(0, 0);
Console.SetCursorPosition(cl, ct);
await Task.Delay(1);
goto o;
Гость
 Re: Как запретить пользователю прокручивать консоль?

Сообщение Гость »

Изменение размера и буфера:

Код: Выделить всё

Console.WindowHeight

Код: Выделить всё

Console.WindowWidth

Код: Выделить всё

Console.BufferHeight

Код: Выделить всё

Console.BufferWidth
Гость
 Re: Как запретить пользователю прокручивать консоль?

Сообщение Гость »

Гость: 22 дек 2024, 12:24 попробуй

Код: Выделить всё

o:
int cl = Console.CursorLeft;
int ct = Console.CursorTop;
Console.SetCursorPosition(0, 0);
Console.SetCursorPosition(cl, ct);
await Task.Delay(1);
goto o;
исправляюсь

Код: Выделить всё

o: int cl = Console.CursorLeft; 
int ct = Console.CursorTop; 
Console.SetCursorPosition(0, 0);
await Task.Delay(1);
Console.SetCursorPosition(cl, ct); 
goto o;
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»