noD*_*ame 18 c# dynamic button winforms
当我点击button1时,我想在表单上创建10个按钮.下面的代码没有错误,但它也不起作用.
private void button1_Click(object sender, EventArgs e)
{
List<Button> buttons = new List<Button>();
for (int i = 0; i < buttons.Capacity; i++)
{
this.Controls.Add(buttons[i]);
}
}
Run Code Online (Sandbox Code Playgroud)
Igb*_*man 22
您没有创建任何按钮,只有一个空列表.
您可以忘记列表,只需在循环中创建按钮.
private void button1_Click(object sender, EventArgs e)
{
int top = 50;
int left = 100;
for (int i = 0; i < 10; i++)
{
Button button = new Button();
button.Left = left;
button.Top = top;
this.Controls.Add(button);
top += button.Height + 2;
}
}
Run Code Online (Sandbox Code Playgroud)
alf*_*alf 20
它不起作用,因为列表为空.试试这个:
private void button1_Click(object sender, EventArgs e)
{
List<Button> buttons = new List<Button>();
for (int i = 0; i < 10; i++)
{
Button newButton = new Button();
buttons.Add(newButton);
this.Controls.Add(newButton);
}
}
Run Code Online (Sandbox Code Playgroud)
你可以这样做:
Point newLoc = new Point(5,5); // Set whatever you want for initial location
for(int i=0; i < 10; ++i)
{
Button b = new Button();
b.Size = new Size(10, 50);
b.Location = newLoc;
newLoc.Offset(0, b.Height + 5);
Controls.Add(b);
}
Run Code Online (Sandbox Code Playgroud)
如果您希望它们以任何一种合理的方式进行布局,最好将它们添加到布局面板之一(即FlowLayoutPanel)或自己对齐它们。
| 归档时间: |
|
| 查看次数: |
115573 次 |
| 最近记录: |