C#控件随窗体大小变化
2022/8/9 1:25:28
本文主要是介绍C#控件随窗体大小变化,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
非自创,转载自大神易大胆888
private float X; private float Y; 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 ); } } } 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(); } 在Form_Load里面添加: this.Resize += new EventHandler(Form1_Resize); X = this.Width; Y = this.Height; setTag (this); Form1_Resize(new object(),new EventArgs());//x,y可在实例化时赋值,最后这句是新加的,在MDI时有用
这篇关于C#控件随窗体大小变化的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2022-03-01沐雪多租宝商城源码从.NetCore3.1升级到.Net6的步骤
- 2024-12-06使用Microsoft.Extensions.AI在.NET中生成嵌入向量
- 2024-11-18微软研究:RAG系统的四个层次提升理解与回答能力
- 2024-11-15C#中怎么从PEM格式的证书中提取公钥?-icode9专业技术文章分享
- 2024-11-14云架构设计——如何用diagrams.net绘制专业的AWS架构图?
- 2024-05-08首个适配Visual Studio平台的国产智能编程助手CodeGeeX正式上线!C#程序员必备效率神器!
- 2024-03-30C#设计模式之十六迭代器模式(Iterator Pattern)【行为型】
- 2024-03-29c# datetime tryparse
- 2024-02-21list find index c#
- 2024-01-24convert toint32 c#