Есть ли способ установить в окне консоли фиксированное значение max / min - PullRequest
0 голосов
/ 22 мая 2019

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

foreach (var item in splittedTxt)
            {
                if (wordToFind == item)
                {
                    var cursorPositionTop = Console.CursorTop;
                    var cursorPositionLeft = Console.CursorLeft;
                    Console.BackgroundColor = ConsoleColor.Blue;
                    Console.ForegroundColor = ConsoleColor.White;
                    wordFound = true;


                    foundWordPositions.Add(new CursorPosition(cursorPositionTop, cursorPositionLeft));
                }
                Console.Write(item);
                if (wordFound) // reset color
                {
                    Console.BackgroundColor = ConsoleColor.Black;
                    Console.ForegroundColor = ConsoleColor.Gray;
                    wordFound = false;


                }

                Console.Write(" ");
            }

//Sets the cursor to my found results
foreach (var item in foundWordPositions)
        {
            Console.SetCursorPosition(item.CursorLeftPosition, item.CursorTopPosition);
            Console.ReadLine();
        }

Ответы [ 2 ]

1 голос
/ 22 мая 2019

это был бы хакерский способ достичь того, что вы ищете, но я не уверен, каким другим способом это сделать:

  private void CheckAndResetWindowSize(){
      if(Console.WindowHeight != 200|| Console.WindowWidth != 400) {
          Console.SetWindowSize(400, 200);
      }
  }

это позволит пользователям иметь возможность редактироватьразмер окна, но оно автоматически изменит размер до того, что должно быть.

дайте мне знать, если это поможет.

0 голосов
/ 22 мая 2019

Вы можете использовать функцию DeleteMenu() из user32-API, чтобы отключить изменение размера вашего окна консоли.Проверьте эту и эту ссылку о том, как ее использовать.Полное решение вашей проблемы можно найти здесь .

...