我一直在使用microsoft visual studio 2013,我做了一个控制台应用程序,但我很想知道是否有办法为它制作一个固定的大小(高度/宽度),这意味着它不能重新调整大小?如果有人知道这是否可行,如果你能帮助我,我将不胜感激。谢谢!
答案 0 :(得分:3)
Console.SetWindowSize
将是你的朋友。
答案 1 :(得分:2)
这是一个绝对可怕的解决方案,但你可以在整个代码中调用一个"检查大小"检查Console.WindowHeight和Console.WindowWidth的方法,如果它们不相等则重置它们,它不会阻止人们调整大小,但至少会保持它你想要的大小。
编辑:我发布我认为是一个可怕的解决方案的原因是因为据我所知,没有内置功能允许你尝试做什么,我给你一个解决方法
private void CheckAndResetWindowSize(){
if(Console.WindowHeight != 300 || Console.WindowWidth != 500) {
Console.SetWindowSize(500, 300);
}
}
答案 2 :(得分:1)
为了达到这个效果,你需要使用一些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();
}
希望这很有用。