我有一个带按钮的面板.我的按钮是动态创建的.我希望有4行,每行4个按钮.但我只得到一排.
foreach (CategoriesDataSet.CategoriesRow category in DataRepository.Categories.Categories)
{
if (!category.CategoryName.Equals("ROOT"))
{
SimpleButton button = new SimpleButton();
button.Text = category.CategoryName;
button.Tag = category.CategoryId;
button.Size = new Size(82, 70);
if (lastButton != null)
button.Left = lastButton.Right + 1;
lastButton = button;
button.Click += CategoryButtonClick;
categoriesPanel.Controls.Add(button);
}
}
Run Code Online (Sandbox Code Playgroud)
期望的结果:
x x x x
X x x x
x x x x
Run Code Online (Sandbox Code Playgroud)
这是 Treb 答案后面的评论的答案。
使用for循环并对Left属性使用模运算符。
for (int i = 0; i < DataRepository.Categories.Categories.Count; i++)
{
CategoriesDataSet.CategoriesRow category = DataRepository.Categories.Categories[i];
if (!category.CategoryName.Equals("ROOT"))
{
SimpleButton button = new SimpleButton();
button.Text = category.CategoryName;
button.Tag = category.CategoryId;
button.Size = new Size(82, 70);
button.Left = i%4*82;
button.Top = i*70;
button.Click += CategoryButtonClick;
categoriesPanel.Controls.Add(button);
}
}
Run Code Online (Sandbox Code Playgroud)