【抽奖系统】-窗体控件跟随窗体的大小而变化-源码
2017-03-15 14:45
411 查看
下面是源码:
namespace AutoFormChange { public partial class Form1 : Form { private float X, Y; public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { addDgv(); this.Resize += new EventHandler(Form1_Resize);//执行Form1_Resize方法 X = this.Width; Y = this.Height; setTag(this); } public void addDgv() { DataTable table = new DataTable(); table.Columns.Add("序号", Type.GetType("System.String")); table.Columns.Add("姓名", Type.GetType("System.String")); DataRow row = table.NewRow(); row[0] = "1"; row[1] = "张三"; table.Rows.Add(row); dataGridView1.DataSource = table; dataGridView1.Columns[0].Width = 160; dataGridView1.Columns[1].Width = 340; } private 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(); //窗体标题显示长度和宽度 } 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]) * newy; con.Font = new Font(con.Font.Name, currentSize, con.Font.Style, con.Font.Unit); if (con.Controls.Count > 0) { setControls(newx, newy, con);//递归 } } } //获得控件的长度、宽度、位置、字体大小的数据 private void setTag(Control cons)//Control类,定义控件的基类 { 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);//递归算法 } } } }
相关文章推荐
- 窗体控件大小随窗体大小变化而变化(VB.NET)
- 控件大小和字体随窗体大小变化
- 包含tab控件时,,如何让子控件跟随对话框大小变化(上)
- Winform 控件随窗体大小改变而变化
- winform控件随窗体大小变化而变化
- MFC 控件随窗体大小变化而变化
- C#巧用anchor和dock设计复杂界面(控件随着窗体大小的变化而变化)
- 包含tab控件时,,如何让子控件跟随对话框大小变化(下)
- 让控件随窗体大小变化而变化~WinForms控件自适应窗体大小
- 控件随对话框窗体大小而变化
- C#中怎样使控件随着窗体一起变化大小(常见困难以及修正)
- 控件 移动改变大小源码(C#窗体编程)
- 控件随窗体大小而变化
- 窗体控件大小随窗体大小变化而变化
- C# 巧用anchor和dock设计复杂界面(控件随着窗体大小的变化而变化)【转】
- C#控件跟随窗体大小自动调整控件大小
- C#中怎样使控件随着窗体一起变化大小(常见困难以及修正)
- 窗体中控件自动随窗体变化大小
- [MFC] 控件大小跟随对话框大小比例变化 [大三TJB_708]
- 包含tab控件时,,如何让子控件跟随对话框大小变化(补充)