c#控件随窗体自动缩放时,出现由最小化变为最大化时,界面出现混乱(附代码,敬请指点)
控件自动缩放代码如下:/// <summary>
/// 控件随窗体自动缩放
/// </summary>
/// <param name="frm"></param>
public static void AutoScale(Form frm)
{
frm.Tag = frm.Width.ToString() + "," + frm.Height.ToString();
frm.SizeChanged += new EventHandler(frm_SizeChanged);
}
static void frm_SizeChanged(object sender, EventArgs e)
{
string[] tmp = ((Form)sender).Tag.ToString().Split(',');
float width = (float)((Form)sender).Width / (float)Convert.ToInt16(tmp[0]);
float heigth = (float)((Form)sender).Height / (float)Convert.ToInt16(tmp[1]);
((Form)sender).Tag = ((Form)sender).Width.ToString() + "," + ((Form)sender).Height;
foreach (Control control in ((Form)sender).Controls)
{
control.Scale(new SizeF(width, heigth));
}
}
在窗体界面form1(){}里,我调用AutoScale()函数,虽然能实现控件随窗体大小变化,但是总是出现以下情况:
1:比如:使用了DevExpress控件的textbox和label,label的text为:"名称",那么"名称"这两个字就有可能跑到textbox框内,只有我用鼠标点击这个textbox控件时,这两个字体才消失,但是我如果把这个textbox换成Windows下的公共控件后,就不会出现这种情况,不知道是什么原因。
2:第一次打开界面的布局和再一次由最小化换到最大化时的布局总是出现不同:比如两个groupbox之间的间隔变化了。
请高手给予解惑,谢谢!
--------------------编程问答-------------------- dddd --------------------编程问答--------------------
--------------------编程问答--------------------
<html>
<head>
<title></titel>
</head>
<body>
</body>
</html>
补充:.NET技术 , C#