C#,实现窗口大小改变时窗口内的控件自动调整位置和大小时,groupbox内的控件为什么不自动调整??求解

代码如下:构造函数中:添加如下代码intcount=this.Controls.Count*2+2;float[]factor=newfloat[count];inti=... 代码如下:
构造函数中:添加如下代码
int count = this.Controls.Count * 2 + 2;
float [] factor=new float [count];
int i = 0;
factor[i++] = Size.Width;
factor[i++] = Size.Height;
foreach (Control ctrl in this.Controls)
{
factor[i++] = ctrl.Location.X / (float)Size.Width;
factor[i++] = ctrl.Location.Y / (float)Size.Height;
ctrl.Tag = ctrl.Size;
}
Tag = factor;

Resize事件中自动调整大小
private void Summary_Resize(object sender, EventArgs e)
{
float[] scale = (float[])Tag;
int i = 2;
foreach (Control ctrl in this.Controls)
{
ctrl.Left = (int)(Size.Width * scale[i++]);
ctrl.Top = (int)(Size.Height * scale[i++]);
ctrl.Width = (int)(Size.Width / (float)scale[0] * ((Size)ctrl.Tag).Width);
ctrl.Height= (int)(Size.Height / (float)scale[1] * ((Size)ctrl.Tag).Height);
}
}
窗口内控件的位置和大小会按照窗口变化的比例相应的自动调整位置和大小,且GroupBox本身的位置和大小也自动调整,但是GroupBox内的控件不变化。。。
问题已解决,不是属性设置的问题,又添加了一段代码,解决的
展开
 我来答
Fireman_duck
2012-05-09 · 超过87用户采纳过TA的回答
知道小有建树答主
回答量:483
采纳率:50%
帮助的人:130万
展开全部
scale一直没变。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wangbiao544
2012-05-09 · 超过24用户采纳过TA的回答
知道答主
回答量:174
采纳率:0%
帮助的人:42.9万
展开全部
设置属性
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zhongguimin
2012-05-09 · 超过19用户采纳过TA的回答
知道答主
回答量:117
采纳率:0%
帮助的人:53.2万
展开全部
在属性里面有一个控件与窗体距离的属性,把它设置一下就行了
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式