RT,需要在一定条件上开启,在某些条件下关闭,谢谢
好像有个WINAPI可以,但是忘了是哪个

解决方案 »

  1.   

    在form_close事件内设置e.Cancel= true
    如果你不想窗口被关闭的话
      

  2.   

    来晚了,
    form_closing事件内设置e.Cancel= true/false
      

  3.   

    protected override void OnLoad(EventArgs e)
    {
    base.OnLoad(e);
    int hSysMenu = GetSystemMenu(this.Handle.ToInt32(), 0);
    DeleteMenu(hSysMenu, 6, (int)MenuFlags.MF_BYPOSITION);
    DeleteMenu(hSysMenu, 5, (int)MenuFlags.MF_BYPOSITION);
    }       [DllImport("user32.dll")]
            public static extern int DeleteMenu(int hMenu, int uPosition, int uFlags);
          
            [DllImport("user32.dll")]
            public static extern int GetSystemMenu(int hWnd, int bRevert);    public enum MenuFlags
        {
            MF_INSERT         = 0x00000000, 
            MF_CHANGE         = 0x00000080, 
            MF_APPEND         = 0x00000100, 
            MF_DELETE         = 0x00000200, 
            MF_REMOVE         = 0x00001000,         MF_BYCOMMAND      = 0x00000000, 
            MF_BYPOSITION     = 0x00000400,         MF_SEPARATOR      = 0x00000800,         MF_ENABLED        = 0x00000000, 
            MF_GRAYED         = 0x00000001, 
            MF_DISABLED       = 0x00000002,         MF_UNCHECKED      = 0x00000000, 
            MF_CHECKED        = 0x00000008, 
            MF_USECHECKBITMAPS= 0x00000200,         MF_STRING         = 0x00000000, 
            MF_BITMAP         = 0x00000004, 
            MF_OWNERDRAW      = 0x00000100,         MF_POPUP          = 0x00000010, 
            MF_MENUBARBREAK   = 0x00000020, 
            MF_MENUBREAK      = 0x00000040,         MF_UNHILITE       = 0x00000000, 
            MF_HILITE         = 0x00000080,         MF_DEFAULT        = 0x00001000, 
            MF_SYSMENU        = 0x00002000, 
            MF_HELP           = 0x00004000, 
            MF_RIGHTJUSTIFY   = 0x00004000,         MF_MOUSESELECT    = 0x00008000, 
            MF_END            = 0x00000080,  /* Obsolete -- only used by old RES files */        MFT_STRING        = MF_STRING, 
            MFT_BITMAP        = MF_BITMAP, 
            MFT_MENUBARBREAK  = MF_MENUBARBREAK, 
            MFT_MENUBREAK     = MF_MENUBREAK, 
            MFT_OWNERDRAW     = MF_OWNERDRAW, 
            MFT_RADIOCHECK    = 0x00000200, 
            MFT_SEPARATOR     = MF_SEPARATOR, 
            MFT_RIGHTORDER    = 0x00002000, 
            MFT_RIGHTJUSTIFY  = MF_RIGHTJUSTIFY,         /* Menu flags for Add/Check/EnableMenuItem( ) */
            MFS_GRAYED        = 0x00000003, 
            MFS_DISABLED      = MFS_GRAYED, 
            MFS_CHECKED       = MF_CHECKED, 
            MFS_HILITE        = MF_HILITE, 
            MFS_ENABLED       = MF_ENABLED, 
            MFS_UNCHECKED     = MF_UNCHECKED, 
            MFS_UNHILITE      = MF_UNHILITE, 
            MFS_DEFAULT       = MF_DEFAULT
        }
      

  4.   

    好像有个属性设为none就可以了
      

  5.   

    controlbox=false,
    不是楼主要的功能。
      

  6.   

    阿便的方法可以,MFC程序里面经常这么做
    不过我觉得.net程序里面调用API不是很好,所以我没给楼主这种方法
    如果楼主一定要实现这种效果,那也就只好这样了,呵呵
      

  7.   

    最简单的方法:
    form_closing事件内设置e.Cancel= true/false