Я пытаюсь заполнить контейнер любым количеством элементов управления с одинаковой высотой и шириной. Я разрешаю этому контейнеру быть сжатым или выращенным пользователем, и контейнер будет организовывать элементы управления, чтобы он соответствовал большинству элементов управления на одной строке, насколько это возможно. Вот код, чтобы организовать его:Ошибка Windows Forms Top
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 содержит магическое значение -20 после присвоения 0.
У любого есть идеи, как это может произойти?
Вы проверили в отладчике, что 'row * controlss.Values [0] .Height' на самом деле' 0'? Кроме того, какой контроль? – SLaks