是否有任何方法(在 C# 中)显示仅包含最小化和最大化按钮的表单?没有关闭按钮?
删除关闭按钮(据我所知)的唯一方法是:
form.ControlBox = false;
但这也摆脱了其他两个按钮。
最佳答案
我编写了一个函数来执行此操作一次
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
if (EnableMenuItem(GetSystemMenu(this.Handle, 0), SC_CLOSE, MF_GRAYED) == -1)
throw new Win32Exception("The message box did not exist to gray out its X");
}
private const int SC_CLOSE = 0xF060;
private const int MF_GRAYED = 0x1;
[DllImport("USER32")]
internal static extern int EnableMenuItem(IntPtr WindowHandle, int uIDEnableItem, int uEnable);
[DllImport("USER32")]
internal static extern IntPtr GetSystemMenu(IntPtr WindowHandle, int bReset);
}
请注意,当您从任务栏查看它时,alt-f4 仍然有效,并右键单击“关闭此窗口”。 (在Windows 7中测试)
关于c# - Windows 窗体可以在没有关闭按钮的情况下显示最小和最大按钮吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3113539/