<img alt="生气" src="http://static.blog.csdn.net/xheditor/xheditor_emot/default/mad.gif" />@InsZhu<img alt="生气" src="http://static.blog.csdn.net/xheditor/xheditor_emot/default/mad.gif" />
以上为黑绳微博,开这个博客是想学多点东西,交些喜欢程序的朋友,以笔名黑绳发表文章。
本例是改善过得小例子,我用VS2010,C#语言实现根据窗体大小自动调整控件功能。
先创建windows应用程序,添加Label、TextBox、ComboBox、ListView
直接看代码吧,
using System;
using System.Drawing;
using System.Windows.Forms;
namespace WindowsFormsApplication2
{
public partial class Form1 : Form
{
//全局变量
private float X;
private float Y;
public Form1()
{
InitializeComponent();
}
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 Form1_Load(object sender, EventArgs e)
{
this.Resize+=new EventHandler(Form1_Resize);
//窗体调整大小事件时执行的方法
X = this.Width;//获取窗体的宽度
Y = this.Height;//获取窗体的高度
setTag(this);//调用方法
}
//根据窗体大小调整控件大小
private void setControls(float newx, float newy, Control cons)
{
//重新设置控件的值
foreach (Control con in cons.Controls)
{
string[] matag = con.Tag.ToString().Split(new char[] { ':' });
float a = Convert.ToSingle(matag[0]) * newx;
//窗体缩放比例确定控件值
con.Width = (int)a;//宽度
a = Convert.ToSingle(matag[1]) * newy;//高度
con.Height = (int)(a);
a = Convert.ToSingle(matag[2]) * newx;//左边
con.Left = (int)(a);
a = Convert.ToSingle(matag[3]) * newy;//上边
con.Top = (int)(a);
Single currentSize = Convert.ToSingle(matag[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);
}
}
}
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();//窗体标题文本
}
}
}
接下来大家可以试试这个小程序啦,虽说原创,不过其实这类例子已经很多了·······