有没有办法(在C#中)只显示最小化和最大化按钮的表单?没有关闭按钮?
删除关闭按钮(我知道)的唯一方法是:
form.ControlBox = false;
但这也摆脱了其他按钮。
答案 0 :(得分:2)
有一篇文章here展示了如何做到这一点。它需要使用非托管User32.dll
答案 1 :(得分:2)
我曾写过一个函数来执行此操作
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中测试)