是否有办法使一个固定的(高度/宽度)控制台

本文关键字:高度 控制台 宽度 一个 是否 | 更新日期: 2023-09-27 18:08:19

我一直在microsoft visual studio 2013中搞乱,我做了一个控制台应用程序,但我想知道是否有一种方法可以为它制作固定的大小(高度/宽度),这意味着它不能调整大小。如果有人知道这是可能的,我会很感激如果你能帮助我。谢谢你!

是否有办法使一个固定的(高度/宽度)控制台

为了达到这个效果,你需要使用一些c++类库:

const int MF_BYCOMMAND = 0x00000000;
const int SC_MINIMIZE = 0xF020;
const int SC_MAXIMIZE = 0xF030;
const int SC_SIZE = 0xF000;
[DllImport("user32.dll")]
public static extern int DeleteMenu(IntPtr hMenu, int nPosition, int wFlags);
[DllImport("user32.dll")]
private static extern IntPtr GetSystemMenu(IntPtr hWnd, bool bRevert);
[DllImport("kernel32.dll", ExactSpelling = true)]
private static extern IntPtr GetConsoleWindow();
static void Main(string[] args)
{
    Console.WindowHeight = 25;
    Console.WindowWidth = 80;
    DeleteMenu(GetSystemMenu(GetConsoleWindow(), false), SC_MINIMIZE, MF_BYCOMMAND);
    DeleteMenu(GetSystemMenu(GetConsoleWindow(), false), SC_MAXIMIZE, MF_BYCOMMAND);
    DeleteMenu(GetSystemMenu(GetConsoleWindow(), false), SC_SIZE, MF_BYCOMMAND);
    Console.WriteLine("Yes, its fixed!");
    Console.ReadLine();
}

这绝对是一个可怕的解决方案,但你可以在你的代码中调用一个"检查大小"方法来检查控制台。窗口重量和控制台。如果它们不相等,它不会阻止人们调整大小,但至少会保持你想要的大小。

编辑:我之所以发布我觉得是一个可怕的解决方案,是因为据我所知,没有内置的功能来允许你想做的事情,我给你一个变通的办法。

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

Console.SetWindowSize将成为你的朋友。

但是你要面对一件事Windows snap功能

我仍在寻找控制台的解决方案

这是Winform应用程序的解决方案

如何通过编程方式使用c#代码中的aero snap功能