C#,实现窗口大小改变时窗口内的控件自动调整位置和大小时,groupbox内的控件为什么不自动调整 20
初始化时:InitializeComponent();intcount=this.Controls.Count*2+2;float[]factor=newfloat[co...
初始化时:
InitializeComponent();
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事件:
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);
}
说明:百度知道离回答http://zhidao.baidu.com/question/421384385.html里有,不过没说清楚,不要说要用anchor和DOCK方法,不行。 展开
InitializeComponent();
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事件:
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);
}
说明:百度知道离回答http://zhidao.baidu.com/question/421384385.html里有,不过没说清楚,不要说要用anchor和DOCK方法,不行。 展开
展开全部
用递归,你的foreach 只遍历到GroupBox控件,没有遍历到Groupbox里面的控件
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你的groupbox是不是已经设置了对齐了,如果是的话有可能程序修改不了。
更多追问追答
追问
不是groupbox不能调整大小,是里面的控件
追答
那我知道了,你在循环的时候也将groupBox1.Controls中的控件循环一边,不能只循环this中的控件。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我来说的话还是要用Anchor属性,你GroupBox中的控件也设置这个属性了吗。
说这样不行,你贴个你的窗体的图片出来看看才好让人理解解决啊。
说这样不行,你贴个你的窗体的图片出来看看才好让人理解解决啊。
追问
自动调整时,groupbox会随着变化,而里面的控件大小却不变
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询