Winform下去除MDI窗体边框
做项目中间遇到了MDI窗体内边框的问题,经过苦苦寻找,最终得到了解决方案
在Main窗体中调用API
- // Win32 Constants
- private const int GWL_STYLE = -;
- private const int GWL_EXSTYLE = -;
- private const int WS_BORDER = 0x00800000;
- private const int WS_EX_CLIENTEDGE = 0x00000200;
- private const uint SWP_NOSIZE = 0x0001;
- private const uint SWP_NOMOVE = 0x0002;
- private const uint SWP_NOZORDER = 0x0004;
- private const uint SWP_NOACTIVATE = 0x0010;
- private const uint SWP_FRAMECHANGED = 0x0020;
- private const uint SWP_NOOWNERZORDER = 0x0200;
- // Win32 方法
- [DllImport("user32.dll", CharSet = CharSet.Auto)]
- private static extern int GetWindowLong(IntPtr hWnd, int Index);
- [DllImport("user32.dll", CharSet = CharSet.Auto)]
- private static extern int SetWindowLong(IntPtr hWnd, int Index, int Value);
- [DllImport("user32.dll", ExactSpelling = true)]
- private static extern int SetWindowPos(IntPtr hWnd, IntPtr hWndInsertAfter,
- int X, int Y, int cx, int cy, uint uFlags);
- 获取到API后在Form_Load事件中加入如下代码
- //获取mdi客户区
- for (int i = ; i < this.Controls.Count; i++)
- {
- var mdiClientForm = this.Controls[i] as MdiClient;
- if (mdiClientForm == null) continue;
- // 找到了mdi客户区
- // 取得客户区的边框
- int style = GetWindowLong(mdiClientForm.Handle, GWL_STYLE);
- int exStyle = GetWindowLong(mdiClientForm.Handle, GWL_EXSTYLE);
- style &= ~WS_BORDER;
- exStyle &= ~WS_EX_CLIENTEDGE;
- // 调用win32设定样式
- SetWindowLong(mdiClientForm.Handle, GWL_STYLE, style);
- SetWindowLong(mdiClientForm.Handle, GWL_EXSTYLE, exStyle);
- // 更新客户区
- SetWindowPos(mdiClientForm.Handle, IntPtr.Zero, , , , ,
- SWP_NOACTIVATE | SWP_NOMOVE | SWP_NOSIZE | SWP_NOZORDER |
- SWP_NOOWNERZORDER | SWP_FRAMECHANGED);
- UpdateStyles();
- break;
- }
重新运行程序,OK
Winform下去除MDI窗体边框的更多相关文章
- WPF 去除系统窗体边框,自定义移动窗体
方法一: 去除系统窗体边框: <Window x:Class="PracticeProject.MainWindow" xmlns="http://schemas. ...
- IE7浏览器下去除flash动画边框问题
<object width="100%" height="100%" data="/templates/default/swf/guide.sw ...
- C# Winform学习---MDI窗体的设计,PictureBox控件(图片上一页下一页),Timer控件,MenuStrip控件
一.MDI窗体的设计 1.MDI简介 MDI(Multiple Document Interface)就是所谓的多文档界面,与此对应就有单文档界面 (SDI), 它是微软公司从Windows 2.0下 ...
- 小菜学习Winform(四)MDI窗体(附示例)
前言 在做winfrom项目的时候我们可能会用到嵌套窗体,就是说一个容器中有多个窗体,可以分别管理和应用这些窗体,.net中提供了一种机制就是MDI,可能大家都会用,这边就简单的介绍下. 简单应用 w ...
- Winform MDI窗体切换不闪烁的解决办法(测试通过)
https://stackoverflow.com/questions/5817632/beginupdate-endupdate-for-datagridview-request SuspendLa ...
- Winform拖拽改变无边框窗体大小
大家在进行Winform开发过程中,很容易就可以完成一个窗口的布局工作,但现在的软件界面美化效果一个比一个好,很多软件都是无边框的,于是乎,你是不是也感叹:winform的带边框的窗体如此丑陋,我一定 ...
- winform下自绘提示框风格窗体
昨天分享了一个环形滚动条控件,今天分享一个提示框风格的窗体.代码如下: /// <summary> /// 继承自Form,但将FormBorderStyle设置为None /// < ...
- 【2017-05-03】winform打印控件、事件对象和事件数据、MDI窗体容器
一.打印控件 第一步先把打印对象搞出来. - printDocument 打印对象(将要打印的内容放到该对象里,从该对象里取内容打印) 设置他的PrintPage事件(对于要打印的每一页触发一次 ...
- WPF去除窗体边框及白色边框
<Window x:Class="WpfAppFirst.Evaluation" xmlns="http://schemas.microsoft.com/winfx ...
随机推荐
- 简单的线性规划-scipy
根据描述,我们用线性规划带约束来求解问题 # coding=utf-8 from scipy.optimize import linprog import numpy as np def maxGai ...
- 数据仓库搭建——Inmon与Kimball
一.简介 1.1 历史 搞数据仓库这么久,实践中发现首先搭建数据集市,还是清洗数据之后,直接进入数据立方体(形成维度表和实施表)形成核心数据仓库层,是个选择题... 随后发现这其实涉及到了数据仓库的历 ...
- mysql关于char和varchar的查询效率问题
看了好多资料都说 varchar(size) 可变长度的字符值,节省空间,查询效率低 char(size) 固定长度的字符值,浪费空间,查询效率高 但是实际测试 char(100) varcha ...
- GlusterFS最佳实践
标签(linux): glusterfs 笔者Q:972581034 交流群:605799367.有任何疑问可与笔者或加群交流 今天我们来从实战中学习glusterfs 环境准备: gluster-s ...
- records.config文件参数解释
# Process Records Config File # # <RECORD-TYPE> <NAME> <TYPE> <VALUE (till end ...
- 配置redis开机自启动和监听
redis安装好后,每次手动启动很不方便,配置开机自启动. 方法一:设置启动命令到/etc/rc.d/rc.local rc.local文件是系统全局脚本文件,会在其他开机进程脚本文件执行完毕后执行该 ...
- Spring Boot快速入门(最新)
本章通过完成Spring Boot基础项目的构建并实现一个简单的Http请求处理,让大家对Spring Boot有一个初步的了解,并体验其结构简单.开发快速的特性.预计阅读及演练过程将花费约5分钟. ...
- Spring学习之装配Bean
通过注解配置的bean,默认是单例 @Autowired private CodeTypeService codeTypeService; 测试:在Controller层调用Service层对象Cod ...
- MySQL笔记-turncat、drop、delete的区别
TRUNCATE 语法: TRUNCATE TABLE [schema.] table [{DROP | REUSE} STORAGE]功能: 删除整个表的数据并释放空间 描述: 由于Trunca ...
- 使用Google Cloud Platform构建机器学习项目-宠物识别
宠物识别我们使用到了tensorflow object-detection API (https://github.com/tensorflow/models/tree/master/researc ...