界面设计:控件有flowLayoutPanel,Panel,lable
实现代码的部分:
private void Form1_Load(object sender, EventArgs e)
{
this.AutoSizeMode = AutoSizeMode.GrowAndShrink;
//从整个菜单的盒子中找每一个菜的盒子
foreach (Control item in flowLayoutPanel1.Controls)
{
//创建对应的按钮
Button btn = new Button();
//从每一个菜中寻找盒子
foreach (Control lb in (item as Panel) .Controls)
{
//判断标签是index的label则是编号label
if (lb.Tag.ToString()=="index")
{
btn.Text = lb.Text;
//再给每个btn添加不同的标签,使用btn的编号作为其标签
btn.Tag = btn.Text;
//每个菜的盒子也添加上标签,使用盒子中装的这个菜的编号
item.Tag = lb.Text;
}
}
btn.Size = new Size(70, 30);
flowLayoutPanel2.Controls.Add(btn);
//把所对应的按钮装进盒子中
btn.Click += Btn_Click;
}
}
//sender:获取事件的发起者
int Count = 0;
private void Btn_Click(object sender, EventArgs e)
{
//sender本质是Button对象
string btnIndex = (sender as Button).Tag.ToString();
foreach (Control item in flowLayoutPanel1.Controls)
{
//判断每个button触发所对应的事件
if (item.Tag.ToString()== btnIndex)
{
foreach (Control lb in ((Panel)item).Controls)
{
//新生成装菜的名称
Label lbName = new Label();
if (lb.Tag.ToString()=="Name")
{
lbName.Text = lb.Text;
//lbName.BorderStyle = BorderStyle.FixedSingle;
}
lbName.AutoSize = true;
flowLayoutPanel3.Controls.Add(lbName);
if (lb.Tag.ToString()=="Price")
{
Count += int.Parse(lb.Text);
label33.Text = Count.ToString();
}
}
}
}
}