自己写的winform窗体自适应大小代码,代码比较独立,很适合贴来贴去不会对原有程序造成影响,可以直接继承此类或者把代码复制到自己的代码里面直接使用

借鉴了网上的一些资料,最后采用重写WndProc方法,这样可以兼顾窗体拖拽调整窗体大小和最大化、最小化方法,而且代码比较简练,代码侵入性较小

using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms;
using System.Drawing;namespace LzRabbit
{public class AutoResizeForm : Form{const int WM_SYSCOMMAND = 0X112;//274const int SC_MAXIMIZE = 0XF030;//61488const int SC_MINIMIZE = 0XF020;//61472const int SC_RESTORE = 0XF120; //61728const int SC_CLOSE = 0XF060;//61536const int SC_RESIZE_Horizontal = 0XF002;//61442const int SC_RESIZE_Vertical = 0XF006;//61446const int SC_RESIZE_Both = 0XF008;//61448protected override void WndProc(ref Message m){if (m.Msg == WM_SYSCOMMAND){                switch (m.WParam.ToInt32()){case SC_MAXIMIZE:case SC_RESTORE:case SC_RESIZE_Horizontal:case SC_RESIZE_Vertical:case SC_RESIZE_Both:if (WindowState == FormWindowState.Minimized){base.WndProc(ref m);}else{Size beforeResizeSize = this.Size;base.WndProc(ref m);//窗口resize之后的大小Size afterResizeSize = this.Size;//获得变化比例float percentWidth = (float)afterResizeSize.Width / beforeResizeSize.Width;float percentHeight = (float)afterResizeSize.Height / beforeResizeSize.Height;foreach (Control control in this.Controls){//按比例改变控件大小control.Width = (int)(control.Width * percentWidth);control.Height = (int)(control.Height * percentHeight);//为了不使控件之间覆盖 位置也要按比例变化control.Left = (int)(control.Left * percentWidth);control.Top = (int)(control.Top * percentHeight);//改变控件字体大小control.Font = new Font(control.Font.Name, control.Font.Size * Math.Min(percentHeight, percentHeight), control.Font.Style, control.Font.Unit);}}break;default:base.WndProc(ref m);break;}}else{base.WndProc(ref m);}}}
}

Winform窗体控件自适应大小相关推荐

  1. QT窗体控件自适应大小

    介绍QT中的几种常见布局 常用的布局方法: (1)使用水平布局类QHBoxLayout: (2)使用垂直布局类QVBoxLayout: (3)使用网格布局类QGridLayout: (4)使用表格布局 ...

  2. winformbutton边框怎么改_C# WinForm窗体控件Panel修改边框颜色以及边框宽度方法

    C# WinForm窗体控件Panel修改边框颜色以及边框宽度方法 1.新建组件这里可以自定义一个Panel控件起名为PanelEx 2.增加一个BoderColor属性和BoderSize属性 pr ...

  3. C#Winform 实现控件自适应父容器大小

    C#Winform 实现控件自适应父容器大小 在日常开发中经常遇到控件不能随着父容器大小的改变而且自动改变控件的所在位置和大小.以下是实现的代码 /// <summary>/// 根据父容 ...

  4. 如何在多线程中调用winform窗体控件2——实例篇

    如何在多线程中调用winform窗体控件2--实例篇 针对之前文章<如何在多线程中调用winform窗体控件>,下面举个我项目中的实际案例,这是一个我自定义控件在异步设置焦点时的代码.在新 ...

  5. 基于PyQt5实现界面控件自适应大小

    基于PyQt5实现界面控件自适应大小 界面控件自适应大小,点击窗口放大后,界面控件大小随之发生变化. 实现效果 实例1 点击窗口放大后: 实例2

  6. C#winform窗体控件之toolStrip

    C#winform窗体控件之toolStrip 在做窗体时我们可能需要一个工具栏,那这时最简单的方法就是添加一个toolStrip控件. 如何完成一个上图的工具栏呢? 首先,需要添加一个toolStr ...

  7. Winform 窗体控件最大化自适应

    运行窗体效果如下: 默认点击最大化效果如下: 修改后最大化效果如下:控件自动缩放, 步骤实现如下: 1.在窗体中放一个容器(Panel),将容器的Dock属性设置为Fill.窗体中所有控件都放入这个容 ...

  8. Qt Creator 窗体控件自适应窗口大小布局

    常见的软件窗口大小改变(最大化.手动改变时)需要窗口的部件能够自适应布局,而在Qt的应用程序界面设计中,对于像我一样的初学者如何实现窗口自适应调整还是要绕点弯路的.网上百度了很多,多数说的很含糊,还有 ...

  9. java组件自适应窗口大小_java swing 窗口和控件自适应大小

    本文记录java开发CS结构时怎么自适应屏幕大小以及控件跟随frame大小变化大小.位置和字体大小 需要注意: 1.代码必须放置在其构造方法中.如:我的frame1是我frame.java的名,则代码 ...

最新文章

  1. redis的集群搭建
  2. android怎样添加图片锐化功能,如何在android处理图片(图像二值化锐化转换格式).doc...
  3. HTML引入媒体查询CSS,CSS3 多媒体查询
  4. es 映射 mysql_ElasticSearch系列02:ES基础概念详解
  5. csdn的blog后台程序的导航菜单的实现
  6. 漫画丨让你专心干技术,没让你干到35岁啊…
  7. GBDT迭代决策树的入门教程
  8. python自学教程-3D图示Python标准自学教程入门篇
  9. “购物比价类”Target SDK≥26优秀应用展示
  10. Iptables基本概念及应用
  11. java 定时缓存的实现
  12. 解决SAP PI Cluster系统故障
  13. 游戏修改服务器数据,修改游戏服务器数据的教程
  14. 会议平板一体机常见触摸屏幕故障分析与解决
  15. excel身份证号计算年龄
  16. No DataSource specified
  17. sql中的类型转换---学习
  18. 图形学实验三 图形几何变换
  19. 强化学习原理及应用作业之动态规划算法【SYSU_2023SpringRL】
  20. 一个顶级IT咨询师的对话

热门文章

  1. 蜻蜓fm收音机电脑版_追寻逝去的时光:Tivoli Audio M1BT收音机蓝牙音箱体验
  2. Map.getOrDefault()的返回类型问题
  3. DE 32: Limit Cycles
  4. 二维标准正态分布的matlab方程
  5. 虚拟服务器实验,面向计算机硬件的远程虚拟实验服务
  6. ++递归 字符串全排列_剑指 Offer 38. 字符串的排列
  7. 面试常问的深度学习(DNN、CNN、RNN)的相关问题
  8. matlab的HDLcoder,MATLAB发布新产品模块——Simulink HDL Coder_虚拟与仿真
  9. java上帝模块常见的情况_JVM上帝视角看JVM内存模型,分而治之论各模块详情详解...
  10. python计算一定期间的涨幅_python数据分析与挖掘(十一)--- ndarray运算