快捷搜索:  as

winform的关闭x按钮处于不可用

添加对using System.Runtime.InteropServices的引用

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

///

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

///

///

窗口的句柄

/// 是否成功

public int RemoveXButton(int iHWND)

{

int iSysMenu;

const int MF_BYCOMMAND = 0x400; //0x400-关闭

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

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

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

int iReturn = RemoveXButton( this.Handle.ToInt32());

if(iReturn == 0) //返回值非零表示成功,零表示掉败。

{

MessageBox.Show("Error!");

}

else

{

MessageBox.Show("Success!");

}

这样,关闭按钮处于弗成用状态,不过不要忘怀添加一个控件可以让窗体正常关闭,不然只能停止进程来退出法度榜样了

您可能还会对下面的文章感兴趣: