【发布时间】:2023-03-05 19:21:02
【问题描述】:
我正在尝试使用具有相同高度和宽度的任意数量的控件填充容器。我允许该容器由用户缩小或增长,并且该容器将组织控件,使其尽可能适合一行中的大多数控件。这是组织它的代码:
int row = 0;
int column = 0;
for (int i = 1; i <= controls.Count; i++)
{
controls.Values[i-1].Top = row * controls.Values[0].Height;
controls.Values[i-1].Left = column * controls.Values[0].Width;
if (i % controlsPerRow == 0)
{
// This finishes a row
row++;
column = 0;
}
else
{
column++;
}
}
我遇到的问题是,在循环的第一次迭代中,我将控件高度乘以行并将该值分配给控件 Top 属性。第一行是 0,第一个高度是 165。0 * 165 = 0,但是 Top 属性在赋值为 0 后包含一个神奇的 -20。
有人知道这是怎么发生的吗?
【问题讨论】:
-
您是否在调试器中检查了
row * controls.Values[0].Height实际上是0?还有,它是什么控制?
标签: c# forms controls properties