简易版的点餐系统

一.需求分析:
1.查看菜单
我们先创建一个窗口,然后用创建一个大盒子装菜品菜单,然后每个菜品菜单里面有价格.菜名 .序号
2.选择菜品
要实现选择菜品我们需要在菜单下面创建一个大盒子来装每一道菜对应的按钮button.通过button按钮来选择菜品.让它显示在黄色胡大盒子里
3.统计价格
我们选择菜品的时候.对应价格求和
实现代码
在这里插入图片描述

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace _01_练习题
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            //我们先设置窗口加载的时候我们让他居中
            int left = Screen.PrimaryScreen.Bounds.Width / 2 - this.Width / 2;
            int top = Screen.PrimaryScreen.Bounds.Height / 2 - this.Height / 2;
            this.Location = new Point(left, top);
            //我们先要在整个菜单中找到每一个菜的盒子
            //flowLayoutPanel1这是我们装整个菜单的盒子
            foreach (Control item in flowLayoutPanel1.Controls)
            {
                //创建新的button按钮
                Button bt = new Button();
                //给新创建的button按钮设置字体颜色
                bt.ForeColor = Color.DarkRed;
                //给新创建的button按钮设置背景颜色
                bt.BackColor = Color.LightGray;
                //在每一个菜的盒子中找到lable
                //Panel这是每一个菜的盒子
                foreach (Control lab in ((Panel)item).Controls)
                {
                    //判断标签是index的label则是写编号的
                    if (lab.Tag.ToString()=="index")
                    {
                        //label的编号赋给button作为编号
                        bt.Text = lab.Text;
                        //现在给每一个button按钮添加标签  用button的编号作为其标签
                        bt.Tag = bt.Text;
                        //顺便我们给每个菜的盒子也添加上标签 也就是用菜品的名字来做标签
                        item.Tag = lab.Text;
                    }
                }
                //我们给新添加的button按钮设置大小  既宽和高
                bt.Size = new Size(70, 40);
                //然后我们将生成的button装入button的盒子中  flowLayoutPanel2这个盒子中
                flowLayoutPanel2.Controls.Add(bt);
                //然后我们给button添加点击事件
                bt.Click += Bt_Click;     
            }
        }
        //sender获取事件发起者的对象
        int a = 0;
        private void Bt_Click(object sender, EventArgs e)
        {
            //sender的本质是button的对象
            string dtindex = (sender as Button).Tag.ToString();
            //然后我们在整个菜单中找到每一个装有菜品的盒子
            foreach (Control item in flowLayoutPanel1.Controls)
           {
                //找到按钮所对应的button对象
                if(item.Tag.ToString() == dtindex)
                {
                    //获取所有菜单的label
                    foreach (Control lab in ((Panel)item).Controls)
                    {
                        //创建一个新的label 
                        Label labname = new Label();
                        //给新的labname设置一个颜色
                        labname.ForeColor = Color.Blue;
                        //给新创建的labname设置字体以及字体的大小
                        labname.Font = new Font("楷体",15);
                        //判断标签是name的label则是菜品
                        if (lab.Tag.ToString() == "name")
                        {
                            //把标签名称为name的lab的内容赋给新的label
                            labname.Text = lab.Text;
                        }
                        //设置新生成的label能根据内容撑开
                        labname.AutoSize = true;
                        //把新生成的label写到flowLayoutPanel3中
                        flowLayoutPanel3.Controls.Add(labname);
                        //获取金额的label标签
                        if (lab.Tag.ToString() == "paice")
                        {
                            //
                            a += Convert.ToInt16(lab.Text);
                            //label
                            label39.Text = a.ToString();
                        }
                    }
                } 
            }
          }
    }
}

  • 1
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值