C#使控件随窗体变化而变化的两种方法
来源:互联网 发布:vmware中文破解版 mac 编辑:程序博客网 时间:2024/04/30 15:25
第一种:
float x=0; float y=0; private void Frm_Resize(object sender, System.EventArgs e) { float newx = (this.Width )/ x; float newy = this.Height / y; setConstrols(newx, newy, this); } 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 setConstrols(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]) * newy; con .Font =new Font (con.Font .Name ,currentSize,con.Font .Style ,con.Font .Unit ); if(con.Controls .Count >0) { setConstrols (newx ,newy ,con ); } } } private void Frm_Load(object sender, System.EventArgs e) { x=this.Width ; y=this.Height ; setTag(this); this.Resize +=new EventHandler(Frm_Resize); }
第二种:
static float x; static float y; int[][] con; float[] cc;private void Frm_dqadf_Load(object sender, EventArgs e) { x = this.Width; y = this.Height; con=new int[Controls.Count][]; cc = new float[Controls.Count]; for (int i = 0; i < Controls.Count; i++) { con[i] = new int[4]; con[i][0] = Controls[i].Top; con[i][1] = Controls[i].Height; con[i][2] = Controls[i].Left; con[i][3] = Controls[i].Width; cc[i] = Controls[i].Font.Size; } }private void Frm_dqadf_Resize(object sender, EventArgs e) { float h = this.Height / y; float w = this.Width / x; for (int i = 0; i < Controls.Count; i++) { Controls[i].Top=(int)(con[i][0]*h); Controls[i].Height = (int)(con[i][1] * h); Controls[i].Left = (int)(con[i][2] * w); Controls[i].Width = (int)(con[i][3] * w); float currentSize=cc[i]*h; Controls[i].Font = new Font(Controls[i].Font.Name, currentSize, Controls[i].Font.Style, Controls[i].Font.Unit); } }
- C#使控件随窗体变化而变化的两种方法
- C#窗体控件大小随窗体变化而变化的一种改进方法
- winform 控件随窗体的变化而变化
- 如何让控件随窗体的大小变化而变化
- 使窗体内的控件高度随窗体尺寸变化而变化
- c#控件随屏幕分辨率的变化而变化
- 窗体控件大小随窗体大小变化而变化
- 窗体控件大小随窗体大小变化而变化
- VB窗体控件大小随窗体大小变化而变化
- 控件随窗体大小而变化
- 控件随对话框窗体大小而变化
- mfc中控件更随窗体变化而变化1
- MFC 控件随窗体大小变化而变化
- MFC中让控件随窗体大小变化而变化中需要注意的问题
- 让TextBox随窗体变化而变化
- C#巧用anchor和dock设计复杂界面(控件随着窗体大小的变化而变化)
- C# 控件大小随窗体变化
- 让控件随窗体大小变化而变化~WinForms控件自适应窗体大小
- Alice's Adventures in Wonderland——3、Looking-glass animals
- 数组做数据成员
- Git远程分支管理
- 整数类
- 图论 边数最小的m连通子图
- C#使控件随窗体变化而变化的两种方法
- CGI,FastCGI,PHP-CGI与PHP-FPM概念分析
- Prof分析工具
- pomelo启动流程图
- 交互设计师如何做交互?
- JSONObject与JSONArray的使用
- 10400 - Game Show Math
- CV牛人牛事简介之一(转载)
- qemu,kqemu,kvm,qemu-kvm,libvirt关系