Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 有没有办法制作固定(高度/宽度)的控制台?_C#_Console_Height_Width_Fixed - Fatal编程技术网

C# 有没有办法制作固定(高度/宽度)的控制台?

C# 有没有办法制作固定(高度/宽度)的控制台?,c#,console,height,width,fixed,C#,Console,Height,Width,Fixed,我一直在微软visual studio 2013中胡闹,我制作了一个控制台应用程序,但我想知道是否有办法为它制作一个固定的大小(高度/宽度),这意味着它无法调整大小?如果有人知道这是否可行,如果你能帮助我,我将不胜感激。谢谢大家! 将是您的朋友。这是一个绝对可怕的解决方案,但您可以在整个代码中调用一个“检查大小”方法,检查Console.WindowHeight和Console.WindowWidth,并重置它们。如果它们不相等,它不会阻止人们调整大小,但至少会将其保持在您想要的大小 编辑:我

我一直在微软visual studio 2013中胡闹,我制作了一个控制台应用程序,但我想知道是否有办法为它制作一个固定的大小(高度/宽度),这意味着它无法调整大小?如果有人知道这是否可行,如果你能帮助我,我将不胜感激。谢谢大家!


将是您的朋友。

这是一个绝对可怕的解决方案,但您可以在整个代码中调用一个“检查大小”方法,检查Console.WindowHeight和Console.WindowWidth,并重置它们。如果它们不相等,它不会阻止人们调整大小,但至少会将其保持在您想要的大小

编辑:我之所以发布我认为是一个可怕的解决方案,是因为据我所知,没有内置的功能来允许你尝试做什么,我给你一个解决办法

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

为了达到这个效果,需要使用一些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();
}

希望这是有用的。

这并不能使它得到修复,是吗?人们仍然可以调整它。这里有一个奇怪的漏洞,我们基本上在WinForm中放了一个控制台。由于锁定WinForm很简单,也许它可以满足您的需要。在哪里可以找到这些
const int
?@LuizLoyola的列表