使C# 窗体的关闭按钮、最小化、最大化按钮不可用

  [ 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);



   
///   <summary>

   
///  返回值,非零表示成功,零表示失败。

   
///   </summary>

   
///   <param name="iHWND"> 窗口的句柄 </param>

   
///   <returns> 是否成功 </returns>

    public int  RemoveXButton( int  iHWND)

   {

    
int  iSysMenu;

    
const   int  MF_BYPOSITION  =   0x400 ; // 0x400-基于位置

    iSysMenu  =  GetSystemMenu( this .Handle.ToInt32(), 0 );

    
return  RemoveMenu(iSysMenu, 6 , MF_BYPOSITION); // 是6而不是其他

   }

通过函数返回值就可以判断目的是否达到,在构造函数里面可以这样判断:

<div class="chcontent">int<span style="color: rgb(0, 0, 0);"> iReturn </span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);"> RemoveXButton( </span>this<span style="color: rgb(0, 0, 0);">.Handle.ToInt32());

    </span>if<span style="color: rgb(0, 0, 0);">(iReturn </span><span style="color: rgb(0, 0, 0);">==</span><span style="color: rgb(0, 0, 0);"> </span>0<span style="color: rgb(0, 0, 0);">) </span>//返回值非零表示成功,零表示失败。

<span style="color: rgb(0, 0, 0);">    {

     MessageBox.Show(</span>"Error!"<span style="color: rgb(0, 0, 0);">);

    }

    </span>else<span style="color: rgb(0, 0, 0);">

    {

     MessageBox.Show(</span>"Success!"<span style="color: rgb(0, 0, 0);">);

    }</span></div>

这样,关闭按钮处于不可用状态,不过不要忘记添加一个控件可以让窗体正常关闭,不然只能结束进程来退出程序了。

 

最小化 最大化按钮不显示可以使用两个属性:

MaximumBox=false;

MinimumBox=false;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值