资源简介
窗体内的控件随窗体大小变化,控件的大小变化也等比例变化
/// <summary>
/// 将控件的宽,高,左边距,顶边距和字体大小暂存到tag属性中
/// </summary>
/// <param name="cons">递归控件中的控件</param>
private void setTag(Control cons)
{
foreach (Control con in cons.Controls)
{
con.Tag = con.Width ":" con.Height ":" con.Left ":" con.Top ":" con.Font.Size;
if (con.Controls.Count > 0)
setTag(con);
}
}
//根据窗体大小调整控件大小
private void setControls(float newx, float newy, Control cons)
{
foreach (Control con in cons.Controls)
{
string[] mytag = con.Tag.ToString().Split(new char[] { ':' });
float a = Convert.ToSingle(mytag[0]) * newx;
con.Width = (int)a;
a = Convert.ToSingle(mytag[1]) * newy;
con.Height = (int)(a);
a = Convert.ToSingle(mytag[2]) * newx;
con.Left = (int)(a);
a = Convert.ToSingle(mytag[3]) * newy;
con.Top = (int)(a);
Single currentSize = Convert.ToSingle(mytag[4]) * Math.Min(newx, newy);
con.Font = new Font(con.Font.Name, currentSize, con.Font.Style, con.Font.Unit);
if (con.Controls.Count > 0)
{
setControls(newx, newy, con);
}
}
}
/// <summary>
/// 将控件的宽,高,左边距,顶边距和字体大小暂存到tag属性中
/// </summary>
/// <param name="cons">递归控件中的控件</param>
private void setTag(Control cons)
{
foreach (Control con in cons.Controls)
{
con.Tag = con.Width ":" con.Height ":" con.Left ":" con.Top ":" con.Font.Size;
if (con.Controls.Count > 0)
setTag(con);
}
}
//根据窗体大小调整控件大小
private void setControls(float newx, float newy, Control cons)
{
foreach (Control con in cons.Controls)
{
string[] mytag = con.Tag.ToString().Split(new char[] { ':' });
float a = Convert.ToSingle(mytag[0]) * newx;
con.Width = (int)a;
a = Convert.ToSingle(mytag[1]) * newy;
con.Height = (int)(a);
a = Convert.ToSingle(mytag[2]) * newx;
con.Left = (int)(a);
a = Convert.ToSingle(mytag[3]) * newy;
con.Top = (int)(a);
Single currentSize = Convert.ToSingle(mytag[4]) * Math.Min(newx, newy);
con.Font = new Font(con.Font.Name, currentSize, con.Font.Style, con.Font.Unit);
if (con.Controls.Count > 0)
{
setControls(newx, newy, con);
}
}
}
代码片段和文件信息
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Fineex.FineexPrint
{
public partial class Form1 : Form
{
private float X;//当前窗体的宽度
private float Y;//当前窗体的高度
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender EventArgs e)
{
this.Resize += new EventHandler(Form1_Resize);//窗体调整大小时引发事件
X = this.Width;//获取窗体的宽度
Y = this.Height;//获取窗体的高度
setTag(this);//调用方法
}
void Form1_Resize(object sender EventArgs e)
{
float newx = (this.Width) / X;
float newy = this.Height / Y;
setControls(newx newy this);
this.Text = this.Width.ToString() + “ “ + this.Height.ToString(
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 189 2020-07-17 14:07 formSize\App.config
文件 4197 2020-07-29 10:53 formSize\FineexPrint.csproj
文件 2673 2020-07-29 10:36 formSize\Form1.cs
文件 3126 2020-07-29 10:36 formSize\Form1.Designer.cs
文件 5817 2020-07-29 10:36 formSize\Form1.resx
文件 214 2020-07-17 14:07 formSize\obj\Debug\.NETfr
文件 11516 2020-07-29 10:09 formSize\obj\Debug\DesignTimeResolveAssemblyReferences.cache
文件 7211 2020-07-29 10:53 formSize\obj\Debug\DesignTimeResolveAssemblyReferencesInput.cache
文件 180 2020-07-29 10:53 formSize\obj\Debug\Fineex.FineexPrint.Form1.resources
文件 180 2020-07-29 10:53 formSize\obj\Debug\Fineex.FineexPrint.Properties.Resources.resources
文件 0 2020-07-29 10:53 formSize\obj\Debug\FineexPrint.csproj.CopyComplete
文件 42 2020-07-29 10:53 formSize\obj\Debug\FineexPrint.csproj.CoreCompileInputs.cache
文件 970 2020-07-29 10:53 formSize\obj\Debug\FineexPrint.csproj.FileListAbsolute.txt
文件 1072 2020-07-29 10:53 formSize\obj\Debug\FineexPrint.csproj.GenerateResource.cache
文件 424 2020-07-29 10:53 formSize\obj\Debug\FineexPrint.csprojAssemblyReference.cache
文件 22016 2020-07-29 10:53 formSize\obj\Debug\FineexPrint.exe
文件 4440 2020-07-29 10:53 formSize\obj\Debug\FineexPrint.FrmMain.resources
文件 40448 2020-07-29 10:53 formSize\obj\Debug\FineexPrint.pdb
文件 3584 2020-07-17 14:22 formSize\obj\Debug\TempPE\Properties.Resources.Designer.cs.dll
文件 550 2020-07-29 10:57 formSize\Program.cs
文件 1314 2020-07-17 14:07 formSize\Properties\AssemblyInfo.cs
文件 2871 2020-07-17 14:10 formSize\Properties\Resources.Designer.cs
文件 5612 2020-07-17 14:07 formSize\Properties\Resources.resx
文件 1118 2020-07-17 14:10 formSize\Properties\Settings.Designer.cs
文件 249 2020-07-17 14:07 formSize\Properties\Settings.settings
目录 0 2020-07-29 10:57 formSize\obj\Debug\TempPE
目录 0 2020-07-17 14:07 formSize\bin\Debug
目录 0 2020-07-17 14:09 formSize\bin\Release
目录 0 2020-07-29 10:57 formSize\obj\Debug
目录 0 2020-07-29 10:57 formSize\bin
............此处省略6个文件信息
相关资源
- C#winform打印指定区域 -控件拖动 -设置
- C# 隐形窗体 (没有边框,没有标题栏
- WPF 自定义标题的winform窗体实现源码
- C# 椭圆型窗体
- 用鼠标拖动无边框窗体功能的实现代
- Revit可停靠窗体Test(类库)
- 仿苹果Safari 自定义控件(tab切换控件
- Treeview控件用法基础
- 窗体换肤
- C# 创建移动的窗体
- Html文件上传控件(整理前台使用版)
- WEBBROWER控件使用代理访问指定网页
- C# 屏蔽ALT+F4组合键关闭窗体
- 屏蔽Flash控件右键菜单,并使用自己设
- 实现3个窗体跳转和全部关闭
- vb 具有预览功能的图像查看器用户控
- 具有预览功能的图像查看器用户控件
- 使用Window 自带的控件 axWindowsMediaPla
- 窗体颜色字体改变
- c#窗体应用双色球小游戏(附文档)
- 设置控件的相对布局位置不变
- 磁性窗体的设计
- 窗体的浮动及隐藏
- 重绘ListBox控件
- 向窗体中拖放图片并显示
- 使用键盘控制窗体或控件的移动
- 鼠标穿透窗体
- 手动改变自制窗体的大小
- 自定义Winform窗体例子(入门级)122
- 猜数字游戏(窗体版)
评论
共有 条评论