从c#应用程序的系统菜单中禁用大小选项

时间:2012-09-20 04:52:29

标签: c# user32 systemmenu wm-syscommand

我有一个c#windows base应用程序。现在我想要在系统菜单中禁用size选项。

要在系统菜单中添加选项,我使用的是user32.dll。 我正在使用Windows窗体。

enter image description here

2 个答案:

答案 0 :(得分:3)

如果你有一个对话框(你没有指定)......

...如果您正在使用Winforms(您还没有指定)......

然后您可以通过指定固定边框类型来禁用调整大小的功能;并且您可以通过将相应的表单属性设置为“false”来禁用最小化或最大化的功能。

例如:

form1.FormBorderStyle = FormBorderStyle.FixedDialog;
form1.MaximizeBox = false;
form1.MinimizeBox = false;

否则,请说明您正在做什么,以及您是如何尝试的。示例代码总是有用的:)

答案 1 :(得分:1)

现在我找到了解决方案,

 private const int WM_SYSCOMMAND = 0x112;
 private const int MF_BYCOMMAND = 0x00000000;
 private const int SC_SIZE = 0xF000 ;
[DllImport("user32.dll")]
        private static extern int GetSystemMenu(int hwnd, int bRevert);
[DllImport("user32.dll")]
        private static extern bool DeleteMenu(int hMenu, int uPosition, int uFlags);

int menu = GetSystemMenu(this.Handle.ToInt32(), 0);
DeleteMenu(menu, SC_SIZE, MF_BYCOMMAND);