动态生成button的问题

iymmgd 2012-10-27 02:59:20
我有一个panel,现在需要动态生成4个button.
怎么才能设置button在panel中的现实位置。
第一行2个,第二行2个。
...全文
122 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
Hauk 2012-10-27
  • 打赏
  • 举报
回复

private void CreateButton()
{
int buttonW = 50;//button 宽度
int buttonH = 24;//button 高度
int hCount = 3;//每行几个
int yCount = 2;//多少行
int hGop = (this.panel1.Width - buttonW * hCount) / (hCount + 1);
int yGop = (this.panel1.Height - buttonH * yCount) / (yCount + 1);
for (int j = 0; j < yCount; j++)
{
for (int i = 0; i < hCount; i++)
{
Button button = new Button();
button.Size = new Size(buttonW, buttonH);

Point p = new Point();
p.X = hGop * (i + 1) + i * buttonW;
p.Y = yGop * (j + 1) + j * buttonH;
button.Location = p;

button.Text = j + "," + i;
this.panel1.Controls.Add(button);
}
}
}


根据panel的大小和button的大小、行列计算location
小枪 2012-10-27
  • 打赏
  • 举报
回复
button.sizex=panel.width/4 这样的意思吧
wuyq11 2012-10-27
  • 打赏
  • 举报
回复
Button b;
for (int i = 0; i < 5; i++)
{
b = new Button();
b.Text = i.ToString();
b.Click += new EventHandler(Click);
b.Size = new Size(50, 50);
b.Top = i * 55;
Panel.Controls.Add(b);
}

mayalx 2012-10-27
  • 打赏
  • 举报
回复
for(int i =0;i<2;i++)
{
for(int j =0;j<2;j++)
{
Button btn = new Button();
btn.Left = btn.Width*j;
btn.Top = btn.Height*i;
}
}
iymmgd 2012-10-27
  • 打赏
  • 举报
回复
我就是想问一下这里怎么判断panel的大小,然后在设置btn.Location这个呢?
wuyq11 2012-10-27
  • 打赏
  • 举报
回复
循环设置
wuyq11 2012-10-27
  • 打赏
  • 举报
回复
Button btn = new Button();
btn.Size = new Size(75, 20);
btn.Location //设置
panel1.Controls.Add(btn);

110,567

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧