有没有办法将控制台窗口设置为固定的最大值/最小值
Posted
技术标签:
【中文标题】有没有办法将控制台窗口设置为固定的最大值/最小值【英文标题】:Is there a way to set the console window to a fixed max/min value 【发布时间】:2019-10-08 15:45:57 【问题描述】:目前我正在确定某些单词在控制台中的位置,在输入 Enter 键后,我总是将光标放在下一个单词上,但我遇到的问题是,如果我更改窗口的大小,我存储的单词坐标不再正确。
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();
【问题讨论】:
【参考方案1】:这将是一种 hacky 方式来实现您正在寻找的东西,但我不确定如何实现这一目标:
private void CheckAndResetWindowSize()
if(Console.WindowHeight != 200|| Console.WindowWidth != 400)
Console.SetWindowSize(400, 200);
这将允许用户能够编辑窗口的大小,但它会自动调整回原来的大小。
让我知道这是否有帮助。
【讨论】:
我理论上需要一个事件来执行这个方法并且控制台没有事件。【参考方案2】:您可以使用 user32-API 中的 DeleteMenu()
函数来禁用调整控制台窗口的大小。检查this 和this 链接以了解如何使用它。您的问题的完整解决方案可以在here找到。
【讨论】:
以上是关于有没有办法将控制台窗口设置为固定的最大值/最小值的主要内容,如果未能解决你的问题,请参考以下文章