none
WinForm 右上角 X 钮设定无作用?? RRS feed

答案

  • 使用API,引用命名空间using System.Runtime.InteropServices;

      public partial class Form5 : Form
        {
            public Form5()
            {
                InitializeComponent();
            }
    
            [DllImport("USER32.DLL")]
            public static extern int GetSystemMenu(int hwnd, int bRevert);
            [DllImport("USER32.DLL")]
            public static extern int RemoveMenu(int hMenu, int nPosition, int wFlags);
            const int MF_REMOVE = 0x1000;
            const int SC_RESTORE = 0xF120; //还原 
            const int SC_MOVE = 0xF010; //移动 
            const int SC_SIZE = 0xF000; //大小 
            const int SC_MINIMIZE = 0xF020; //最小化 
            const int SC_MAXIMIZE = 0xF030; //最大化 
            const int SC_CLOSE = 0xF060; //关闭
    
            private void Form5_Load(object sender, EventArgs e)
            {
                int hMenu = GetSystemMenu(this.Handle.ToInt32(), 0);
                RemoveMenu(hMenu, SC_CLOSE, MF_REMOVE);
            }
        }


    http://blog.csdn.net/zx13525079024

    • 已标记为答案 weipxf 2012年10月22日 6:45
    2012年10月22日 1:48
  • 捕获关闭窗体事件,取消关闭即可。


    family as water

    • 已标记为答案 weipxf 2012年10月22日 6:45
    2012年10月22日 2:12
  • 捕获关闭窗体事件,取消关闭即可。


    family as water

    补充:

    1)激发Form_Closing事件。

    2)随后e.Cancel = true;


    我的博客园
    慈善点击,点击此处
    和谐拯救危机,全集下载,净化人心

    • 已标记为答案 weipxf 2012年10月22日 6:45
    2012年10月22日 5:22
    版主

全部回复

  • 使用API,引用命名空间using System.Runtime.InteropServices;

      public partial class Form5 : Form
        {
            public Form5()
            {
                InitializeComponent();
            }
    
            [DllImport("USER32.DLL")]
            public static extern int GetSystemMenu(int hwnd, int bRevert);
            [DllImport("USER32.DLL")]
            public static extern int RemoveMenu(int hMenu, int nPosition, int wFlags);
            const int MF_REMOVE = 0x1000;
            const int SC_RESTORE = 0xF120; //还原 
            const int SC_MOVE = 0xF010; //移动 
            const int SC_SIZE = 0xF000; //大小 
            const int SC_MINIMIZE = 0xF020; //最小化 
            const int SC_MAXIMIZE = 0xF030; //最大化 
            const int SC_CLOSE = 0xF060; //关闭
    
            private void Form5_Load(object sender, EventArgs e)
            {
                int hMenu = GetSystemMenu(this.Handle.ToInt32(), 0);
                RemoveMenu(hMenu, SC_CLOSE, MF_REMOVE);
            }
        }


    http://blog.csdn.net/zx13525079024

    • 已标记为答案 weipxf 2012年10月22日 6:45
    2012年10月22日 1:48
  • 捕获关闭窗体事件,取消关闭即可。


    family as water

    • 已标记为答案 weipxf 2012年10月22日 6:45
    2012年10月22日 2:12
  • 捕获关闭窗体事件,取消关闭即可。


    family as water

    补充:

    1)激发Form_Closing事件。

    2)随后e.Cancel = true;


    我的博客园
    慈善点击,点击此处
    和谐拯救危机,全集下载,净化人心

    • 已标记为答案 weipxf 2012年10月22日 6:45
    2012年10月22日 5:22
    版主
  • 使用API,引用命名空间using System.Runtime.InteropServices;

      public partial class Form5 : Form
        {
            public Form5()
            {
                InitializeComponent();
            }
    
            [DllImport("USER32.DLL")]
            public static extern int GetSystemMenu(int hwnd, int bRevert);
            [DllImport("USER32.DLL")]
            public static extern int RemoveMenu(int hMenu, int nPosition, int wFlags);
            const int MF_REMOVE = 0x1000;
            const int SC_RESTORE = 0xF120; //还原 
            const int SC_MOVE = 0xF010; //移动 
            const int SC_SIZE = 0xF000; //大小 
            const int SC_MINIMIZE = 0xF020; //最小化 
            const int SC_MAXIMIZE = 0xF030; //最大化 
            const int SC_CLOSE = 0xF060; //关闭
    
            private void Form5_Load(object sender, EventArgs e)
            {
                int hMenu = GetSystemMenu(this.Handle.ToInt32(), 0);
                RemoveMenu(hMenu, SC_CLOSE, MF_REMOVE);
            }
        }


    http://blog.csdn.net/zx13525079024

    请问,我照范例, 出现 user32.dll 找不到 GetSystemMenu() 进入点?
    2012年10月22日 6:23
  • 我这边win7测试发现没问题,检查下命名空间是否正确引用,GetSystemMenu方法声明是否正确,


    http://blog.csdn.net/zx13525079024

    2012年10月22日 6:33
  • 你好,我也是 win7 64bit.
    2012年10月22日 6:36
  • OK........
    2012年10月22日 6:37