1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Windows.Forms;
  9. using System.Drawing.Drawing2D;
  10. using System.Runtime.InteropServices;
  11. namespace WinDemo
  12. {
  13. public partial class Form5 : Form
  14. {
  15. public Form5()
  16. {
  17. InitializeComponent();
  18. }
  19. /// <summary>
  20. /// Button 按钮重绘事件
  21. /// </summary>
  22. /// <param name="sender"></param>
  23. /// <param name="e"></param>
  24. private void button1_Paint(object sender, PaintEventArgs e)
  25. {
  26. GraphicsPath myPath = new GraphicsPath();
  27. Rectangle rect = new Rectangle(0,0,574,362);//后面2个数据调整窗体大小
  28. myPath.AddRectangle(rect);
  29. this.Region = new Region(myPath);
  30. }
  31. [DllImport("user32.dll")]
  32. static extern int ReleaseDC(IntPtr hWnd, IntPtr hDC);
  33. [DllImport("User32.dll")]
  34. private static extern IntPtr GetWindowDC(IntPtr hWnd);
  35. protected override void WndProc(ref System.Windows.Forms.Message m)
  36. {
  37. const int WM_NCPAINT = 0x85;
  38. base.WndProc(ref m);
  39. if (m.Msg == WM_NCPAINT)
  40. {
  41. IntPtr hdc = GetWindowDC(m.HWnd);
  42. if ((int)hdc != 0)
  43. {
  44. Graphics g = Graphics.FromHdc(hdc);
  45. Pen pen1 = new Pen(Color.FromArgb(64,64,64));
  46. Pen pen2 = new Pen(Color.FromArgb(128, 128, 128));
  47. Pen pen3 = new Pen(Color.FromArgb(212, 208, 200));
  48. g.DrawLine(pen1, 573, 0, 573, 360);//最外边
  49. g.DrawLine(pen2, 572, 1, 572, 359);//最外边第二条白色
  50. g.DrawLine(pen3, 571, 2, 571, 359);
  51. g.DrawLine(pen3, 571, 2, 571, 359);
  52. g.Flush();
  53. ReleaseDC(m.HWnd, hdc);
  54. }
  55. }
  56. }
  57. private void Form5_MouseCaptureChanged(object sender, EventArgs e)
  58. {
  59. Graphics g = this.CreateGraphics();
  60. Pen pen1 = new Pen(Color.FromArgb(64, 64, 64));
  61. Pen pen2 = new Pen(Color.FromArgb(128, 128, 128));
  62. Pen pen3 = new Pen(Color.FromArgb(212, 208, 200));
  63. g.DrawLine(pen1, 573, 0, 573, 360);//最外边
  64. g.DrawLine(pen2, 572, 1, 572, 359);//最外边第二条白色
  65. g.DrawLine(pen3, 571, 2, 571, 359);
  66. g.DrawLine(pen3, 571, 2, 571, 359);
  67. g.Flush();
  68. }
  69. }
  70. }

using System.Runtime.InteropServices;

[DllImport("user32.dll")]
        internal static extern IntPtr GetSystemMenu(IntPtr hwnd, bool bRevert);

[DllImport("user32.dll")]
        internal static extern int GetMenuItemCount(IntPtr hMenu);

[DllImport("user32.dll")]
        internal static extern int RemoveMenu(IntPtr hMenu, int uPosition, int uFlags);

///   <summary> 
        ///   窗体的关闭按钮失效 
        ///   </summary> 
        protected void CloseButtonEnable()
        {
            //   默认窗口去除关闭按钮 
            const int MF_BYPOSITION = 0x00000400;

IntPtr hWindow = this.Handle;
            IntPtr hMenu = GetSystemMenu(hWindow, false);
            int count = GetMenuItemCount(hMenu);
            RemoveMenu(hMenu, count - 1, MF_BYPOSITION);
            RemoveMenu(hMenu, count - 2, MF_BYPOSITION);
        }

private void confirm_Load(object sender, EventArgs e)
        {
            CloseButtonEnable();

}

Winform 去掉 最大化 最小化 关闭按钮(不是关闭按钮变灰)终极解决办法的更多相关文章

  1. 【转】Winform 去掉 最大化 最小化 关闭按钮(不是关闭按钮变灰)终极解决办法

    不墨迹, 如图 : 网上 看了,好多 给的 答案 乱码七糟,都是扯淡,于是乎 自己 写,代码如下:窗体的大小暂时设置为:(598, 362) 涂红的数据根据你的窗体大小改动 using System; ...

  2. 通过virtualbox最小化安装centos 6.3后无法上网解决办法

    通过virtualbox最小化安装centos 6.3后无法上网解决办法 1.设置virtualbox的网络连接方式,如下图使用桥接方式,桥接的网卡为宿主正在上网的网卡,现在我是通过无线来上网的,所以 ...

  3. 监听Activity进入后台(最小化),并根据时间判断是否超时,此解决办法可用于超时重登陆

    通过重写一个继承自Activity的基类中的onUserLeaveHint()方法,当用户按Home键等操作使程序进入后台时即开始计时,当用户使程序恢复为前台显示时执行onResume()方法,在其中 ...

  4. C#winform如何主窗口最大化最小化默认大小

    this.WindowState = FormWindowState.Minimized; bool b = true; private void button2_Click(object sende ...

  5. PyQt:无边框自定义标题栏及最大化最小化窗体大小调整

    环境 Python3.5.2 PyQt5 陈述 隐藏掉系统的控制栏,实现了自定义的标题控制栏,以及关闭/最大化/最小化的功能,自由调整窗体大小的功能(跟随一个大佬学的),代码内有详细注释 只要把Mai ...

  6. Qt 窗口操作函数(置顶、全屏,最大化最小化按钮设置等)

    一.窗口置顶 与 取消置顶 void MainWindow::on_windowTopButton_clicked() { if (m_flags == NULL) { m_flags = windo ...

  7. c# 窗体相关操作(最大化/最小化/关闭/标题栏)

    /// <summary> /// 窗体跟随鼠标移动的标记 /// </summary> private bool normalmoving = false; /// < ...

  8. 【转】ubuntu 12.04 LTS将关闭最大化最小化移动到右上角

    原文网址:http://www.4byte.cn/learning/114801.html ubuntu 12.04 LTS将关闭最大化最小化移动到右上角   还是按下“ALT +F2”组合键,输入g ...

  9. C#程序实现窗体的最大化/最小化

    C#程序实现窗体的最大化/最小化 http://blog.csdn.net/jiangqin115/article/details/41251215 private void button1_Clic ...

随机推荐

  1. 如何解析 redis 的 rdb 文件

    目录 安装工具 解析 redis 的 rdb 文件 命令行工具使用,先看 --help 生成内存报告 使用参数过滤想要的数据 比较两个 rdb 文件 查看一个 key 的内存使用情况 常见问题 FAQ ...

  2. GAN和GAN的改进

    GAN 原始GAN中判别器要最小化如下损失函数,尽可能把真实样本分为正例,生成样本分为负例: 其中是真实样本分布,是由生成器产生的样本分布. 第一个式子我们不看梯度符号的话即为判别器的损失函数,log ...

  3. C语言printf()函数的格式化字符串

    原文链接:https://www.runoob.com/cprogramming/c-function-printf.html#include<stdio.h> #include<s ...

  4. Python爬虫合集:花6k学习爬虫,终于知道爬虫能干嘛了

    爬虫Ⅰ:爬虫的基础知识 爬虫的基础知识使用实例.应用技巧.基本知识点总结和需要注意事项 爬虫初始: 爬虫: + Request + Scrapy 数据分析+机器学习 + numpy,pandas,ma ...

  5. JZOJ 11.14 提高B组反思

    JZOJ 11.14 提高B组反思 T1 题目虽然有点高大上,但是很容易懂 有一个\(d\)维空间,同时有一个长度为\(2n\)的操作序列,每个操作往某一维的正方向或反方向走一格,问多少种方案使得最后 ...

  6. Docker实战 | 第四篇:Docker启用TLS加密解决暴露2375端口引发的安全漏洞,被黑掉三台云主机的教训总结

    一. 前言 在之前的文章中 IDEA集成Docker插件实现一键自动打包部署微服务项目,其中开放了服务器2375端口监听,此做法却引发出来一个安全问题,在上篇文章评论也有好心的童鞋提示,但自己心存侥幸 ...

  7. 被老猿误解的Python匿名函数lambda

    在<第2.3节 Python运算符大全>老猿这样描述lambda:"上述运算符中有个lambda,这是个lambda就是用来定义一个匿名函数的.老猿认为用处不大,具体内容大家可以 ...

  8. PyQt(Python+Qt)学习随笔:QTableWidgetItem项操作相关的flags、isSelected、checkState方法

    老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 QTableWidget中项操作相关的属性包括是否可用.是否可选中.是否可编辑.是否可复选.是否选中 ...

  9. PyQt(Python+Qt)学习随笔:model/view架构中类QStandardItemModel的使用方法

    老猿Python博文目录 老猿Python博客地址 一.概述 QStandardItemModel是QAbstractItemModel的派生类,用于在Model/View架构中存储自定义数据的通用模 ...

  10. Layui事件监听(表单和数据表格)

    一.表单的事件监听 先介绍一下几个属性的用法 1.lay-filter 事件过滤器 相当于选择器,layui的专属选择器 2.lay-verify 验证属性 属性值可以是 :required必填项, ...