C#中Winform窗体Form的关闭按钮变灰色的方法

本文实例讲述了C#中Winform窗体Form的关闭按钮变灰色的方法,对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_BYCOMMAND = 0x400; //0x400-关闭
  iSysMenu = GetSystemMenu(this.Handle.ToInt32(), 0);
  return RemoveMenu(iSysMenu, 6, MF_BYCOMMAND);
}

private void Form1_Load(object sender, EventArgs e)
{

    //通过函数返回值就可以判断目的是否达到,在构造函数里面可以这样判断:
    int iReturn = RemoveXButton(this.Handle.ToInt32());
    if (iReturn == 0) //返回值非零表示成功,零表示失败。
    {
      MessageBox.Show("Error!");
    }
    else
    {
      MessageBox.Show("Success!");
    }
}

希望本文实例对大家C#程序设计有所帮助。

(0)

相关推荐

  • WinForm实现关闭按钮不可用或隐藏的方法

    本文实例演示了WinForm实现关闭按钮不可用或隐藏的方法,是C#应用程序开发中常见的功能,具体方法如下: 关键代码: /// <summary> /// </summary> private const int CP_NOCLOSE_BUTTON = 0x200; protected override CreateParams CreateParams { get { CreateParams _createParams = base.CreateParams; _createP

  • C# WinForm制作异形窗体与控件的方法

    本文实例讲述了C# WinForm制作异形窗体与控件的方法.分享给大家供大家参考,具体如下: 制作异形窗体或控件的思路一般都是想办法生成一个region,然后设置给指定的窗口或控件.生成region的方法有很多,最常用的就是从一幅图片生成,把该图片中的透明色部分"抠"掉,剩下的部分作为一个region.设置窗口或控件的region可以用SetWindowRgn API,不过.NET framework封装了这个操作,在C#中只要对窗口或控件的Region属性赋值就可以了.下面我就把我在

  • WinForm中实现picturebox自适应图片大小的方法

    本文实例讲述了WinForm中实现picturebox自适应图片大小的方法.分享给大家供大家参考,具体如下: picturebox控件共有两种载入图片方式,分别为: pictureBox1.BackgroundImage = Image,pictureBox1.load(url) 为使加载的图片自使用控件尺寸,可以分别对pictureBox控件设置BackGroundImageLayout=Stretch,SizeMode=StretchImagewinform中picturebox自适应图片大

  • C# Winform实现捕获窗体最小化、最大化、关闭按钮事件的方法

    本文实例讲述了C# Winform实现捕获窗体最小化.最大化.关闭按钮事件的方法,主要是通过重写WndProc来实现的.分享给大家供大家参考.具体方法如下: 主要功能代码如下: const int WM_SYSCOMMAND = 0x112; const int SC_CLOSE = 0xF060; const int SC_MINIMIZE = 0xF020; const int SC_MAXIMIZE = 0xF030; protected override void WndProc(ref

  • WinForm实现的图片拖拽与缩放功能示例

    本文实例讲述了WinForm实现的图片拖拽与缩放功能.分享给大家供大家参考,具体如下: 最近做项目的时候遇到上传施工平面布置图,查看,因为图片比较大,一般的显示器分辨率无法显示全,然后还需要放大看清楚图片里面的文字内容,所以需要用到图片的拖拽与缩放功能.这里整理下具体操作. 首先新建一个窗体,拖一个panel控件到窗体中,然后在拖一个pictureobx控件到panel中,然后在添加个上传图片的按钮: 具体代码: using System; using System.Collections.Ge

  • c# winform取消右上角关闭按钮的实现方法

    一种方法是可以在窗体的属性面板将窗体的 ControlBox属性设置为false,或者在窗体的构造函数中这样写: 复制代码 代码如下: public Form1() { InitializeComponent(); this.ControlBox = false;   // 设置不出现关闭按钮 } 不过这样做的话,会连同最小化和最大化按钮都给弄掉了,所以,如果你想只想让关闭按钮不起作用,然后保留最小化.最大化的话,就重写窗体的CreateParams方法: 复制代码 代码如下: //禁用窗体的关

  • winform拦截关闭按钮触发的事件示例

    用户关闭软件时,软件一般会给"是否确认关闭"的提示.通常,我们把它写在FormClosing 事件中,如果确定关闭,就关闭:否则把FormClosingEventArgs 的 Cancel 属性设置为 true,就取消了该窗体的关闭. 如果该窗体是主窗体,我们想在该窗体关闭时关闭整个应用程序,会遇到至少两种情况: (1)该窗体同时是启动窗体,即它是应用程序中所有窗体的父类,则整个应用程序会被关闭. (2)如果该窗体不是启动窗体,比如我们做了一个欢迎窗体,则应用程序中所有窗体的父类就是这

  • winform实现关闭按钮失效的两种方法

    本文实例讲述了winform实现关闭按钮失效的两种方法.分享给大家供大家参考.具体如下: 第一种: protected override void WndProc(ref Message m) { const int WM_SYSCOMMAND = 0x0112; const int SC_CLOSE = 0xF060; if (m.Msg == WM_SYSCOMMAND && (int)m.WParam == SC_CLOSE) { return; } base.WndProc(ref

  • winform去掉右上角关闭按钮的方法

    一种方法是可以在窗体的属性面板将窗体的 ControlBox属性设置为false,或者在窗体的构造函数中这样写: 复制代码 代码如下: public Form1(){InitializeComponent();this.ControlBox = false;   // 设置不出现关闭按钮} 不过这样做的话,会连同最小化和最大化按钮都给弄掉了,所以,如果你想只想让关闭按钮不起作用,然后保留最小化.最大化的话,就重写窗体的CreateParams方法: 复制代码 代码如下: //禁用窗体的关闭按钮 

  • WinForm实现页面按钮定时隐藏功能

    本文实例讲述了WinForm实现页面按钮定时隐藏功能.分享给大家供大家参考,具体如下: 有时候在做程序时需要将页面上某一项显示出来,然后过一段时间后消失掉,这时可以通过timer定时来实现 private void Form1_Load(object sender, EventArgs e) { System.Timers.Timer t = new System.Timers.Timer(3000); t.Elapsed += new System.Timers.ElapsedEventHan

  • WinForm判断关闭事件来源于用户点击右上角“关闭”按钮的方法

    本文实例讲述了WinForm判断关闭事件来源于用户点击右上角"关闭"按钮的方法.分享给大家供大家参考.具体如下: protected override void WndProc(ref Message msg) { const int WM_SYSCOMMAND = 0x0112; const int SC_CLOSE = 0xF060; if (msg.Msg == WM_SYSCOMMAND && ((int)msg.WParam == SC_CLOSE)) { /

随机推荐