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#程序设计有所帮助。

除声明外,跑步客文章均为原创,转载请以链接形式标明本文地址
  C#中Winform窗体Form的关闭按钮变灰色的方法

本文地址:  http://www.paobuke.com/develop/c-develop/pbk23587.html

相关内容

C#向word文档插入新段落及隐藏段落的方法

C#进阶系列 WebApi身份认证解决方案推荐:Basic基础认证

C#使用linq对数组进行筛选排序的方法

C# 生成随机数的代码


Winform中GridView分组排序功能实现方法

用C#的params关键字实现方法形参个数可变示例

C#实现复杂XML的序列化与反序列化

WinForm中的几个实用技巧汇总

时间: 2024-09-30 11:00:34

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

Visual Studio 2008项目中WinForm窗体图标显示为类图标,只能打开代码而无法打开视图问题解决

背景: 今天打开一个Winform项目的时候,图标显示为类文件的样子而不是窗体的样子,在代码中右键也没有View Designer选项,双击图标打开的是代码而非窗体设计界面,百度后也没有找到解决方案. 解决方法(不一定通用): 1.编译项目查看有没有错误. 2.查看WinForm窗体继承的窗体文件可以打开不?有没有问题 3.签出代码,在undocheckout,编译,查看是否可以了 4.查看该项目有没有被其他人签出,如果被签出,让他们签入,再获取一下最新版本代码,编译,看看是不是可以了(我在这一

C#中winform控制textbox输入只能为数字的方法

本文实例讲述了C#中winform控制textbox输入只能为数字的方法.分享给大家供大家参考.具体实现方法如下: 添加keyPress事件,控制键盘输入只能是自然数: 代码如下: /// <summary> /// 控制键盘输入只能是自然数 /// </summary> /// <param name="sender"></param> /// <param name="e"></param>

WinForm窗体间如何传值的几种方法佐谆茁住追驻

position:static(静态定位) 当position属性定义为static时,可以将元素定义为静态位置,所谓静态位置就是各个元素在HTML文档流中应有的位置 podisition定位问题.所以当没有定义position属性时,并不说明该元素没有自己的位置,它会遵循默认显示为静态位置,在静态定位状态下无法通过坐标值(top,left,right,bottom)来改变它的位置. position:absolute(绝对定位) 当position属性定义为absolute时,元素会脱离文档流

WinForm窗体间如何传值的几种方法

position:static(静态定位) 当position属性定义为static时,可以将元素定义为静态位置,所谓静态位置就是各个元素在HTML文档流中应有的位置 podisition定位问题.所以当没有定义position属性时,并不说明该元素没有自己的位置,它会遵循默认显示为静态位置,在静态定位状态下无法通过坐标值(top,left,right,bottom)来改变它的位置. position:absolute(绝对定位) 当position属性定义为absolute时,元素会脱离文档流

.NET vs2010中使用IrisSkin2.dll轻松实现winForm窗体换肤功能

.NET vs2010中使用IrisSkin2.dll轻松实现winForm窗体换肤功能 转载▼ 大家好,从事c-s开发的C#程序员经常为winForm的界面设计苦恼,笔者曾经也深受“美工神话”的危害,如今提到美工,界面布局设计就开始蛋疼…. 所幸的是,笔者无意间接触到了一些比较可爱的第三方控件,可以为我们程序员省掉很多美工上面的麻烦…在陆续的博客中我会为大家介绍,今天我们的主题是:IrisSkin2.dll IrisSkin2.dll是一款很不错的免费皮肤控件,利用它可以轻松的实现winFor

C#将exe运行程序嵌入到自己的winform窗体中

以下例子是将Word打开,然后将它嵌入到winform窗体中,效果如下图:C将exe运行程序嵌入到自己的winform窗体中 - kingmax_res - iSport注意:该方法只适用于com的exe(如word,Excel之类),.net的编的exe就不能用这用方法嵌入到窗体中. using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using Syst

ET vs2010中使用IrisSkin2.dll轻松实现winForm窗体换肤功能

NET vs2010中使用IrisSkin2.dll轻松实现winForm窗体换肤功能 (2010-12-02 21:43:12) 转载▼ 标签: irisskin2使用 vs2010换肤 添加irisskin2 winform换肤 分类: .NET杂谈 大家好,从事c-s开发的C#程序员经常为winForm的界面设计苦恼,笔者曾经也深受“美工神话”的危害,如今提到美工,界面布局设计就开始蛋疼…. 所幸的是,笔者无意间接触到了一些比较可爱的第三方控件,可以为我们程序员省掉很多美工上面的麻烦…在陆

winform的Form窗体基础

最近搞一个winform的socket编程的课设,平时对winform这块没有研究,以为和C# web差不多的,不曾想窘状百出.没办法,只能硬着头皮赶紧学Form窗体的一些基本知识和socket编程. 首先,谈一谈学Form窗体的一些认识和感悟. 1.关于窗体应用的创建就不说了,当我们在一个项目中添加了多个窗体, 随之而来的调试问题就是:怎么设置首先运行的窗体呢? 解决方案:一般我们建项目之后,在项目中我们会找到有Program.cs文件,双击打开之后里面有一行:Application.Run(

Winform开发中的窗体重复及灵活切换问题

Winform开发中的窗体重复及灵活显示问题 1.问题引入 在项目中需要实现主窗体点击按钮后打开子窗体,但是如果不限制的话每次点击都会打开一个新窗体,用户体验不好还浪费内存.所以这里要做的是限制每个子窗体只可以打开一次,如果打开后没有关闭子窗体或者子窗体被最小化了,就直接把已打开的窗体激活并置顶显示.同时还要满足不同的子窗体是可以共存的,也就是只能同时有一个子窗体A,子窗体B,子窗体C--但是子窗体ABC之间是可以同时存在并互相切换的. 2.解决思路 这里我的做法是写两个方法:ShowOpenF