溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C#如何實現(xiàn)簡單點餐系統(tǒng)

發(fā)布時間:2021-07-21 14:56:27 來源:億速云 閱讀:182 作者:小新 欄目:開發(fā)技術

小編給大家分享一下C#如何實現(xiàn)簡單點餐系統(tǒng),相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

具體內(nèi)容如下

實現(xiàn)簡單點餐系統(tǒng)剖析

1、設計界面(給菜品的序號(index),名稱(name),單價(money)加上Tag以便獲取此控件中的數(shù)據(jù))、設計界面所涉及到的控件(FlowLayoutPAnel,label,button)
2、根據(jù)菜品數(shù)量來添加對應的菜品序號按鈕(有幾個菜品添加幾個按鈕)(用到foreach遍歷循環(huán))
3、通過2個foreach遍歷控件來獲取菜品的序號并將菜品的序號添加到按鈕中
4、添加按鈕單擊事件(代碼實現(xiàn)添加事件)(實現(xiàn)單擊按鈕將按鈕序號對應的菜名和菜品價格分別添加到需要的位置)
5、添加已點菜單中菜名的單擊事件(實現(xiàn)點擊已點菜單中的菜品讓其刪除并且減少相應的消費金額)

此案例中所用到Tag屬性以及sender參數(shù)解釋:

  • Tag:獲取或設置包含有關控件的數(shù)據(jù)的對象

  • sender:事件發(fā)起者是誰,誰就是sender

注意:要用sender參數(shù)必須先用sender參數(shù)的類型接收sender

代碼創(chuàng)建對象以及代碼添加事件

  • 代碼創(chuàng)建對象Label lb = new Label();

  • 代碼添加事件btn.Click += But_Click;步驟:先鍵入需要添加事件的對象然后鍵入點選擇需要的事件+=Tab

Tag的用法(先存后?。?/p>

1、需要的屬性添加到Tag中
2、在需要時只需把Tag賦值給對象即可獲取到需要的屬性

設計界面

C#如何實現(xiàn)簡單點餐系統(tǒng)

具體代碼如下:

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 Test_Order_system
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            this.CenterToScreen();//將窗體顯示在屏幕中央
            //先設計界面
            //獲取FlowLayoutPanel中的控件對應數(shù)據(jù)以及區(qū)分各個控件則需要給FlowLayoutPanel中控件加tag標簽
            //   序號:index    菜名:name    價格:money
            //根據(jù)菜品數(shù)量來添加對應的菜品序號按鈕(有幾個菜品添加幾個按鈕)
            foreach (Control item in flowLayoutPanel1.Controls)//獲取FlowLayoutPanel1中的控件
            {
                //創(chuàng)建對象(new)按鈕
                Button btn = new Button();//實例化
                btn.Size = new Size(70,45);//設置按鈕的大小
                btn.Font = new Font("黑體",20f);//設置按鈕文本顏色
                btn.Tag = item;//將item控件裝進tag中
                //要將菜品的序號添加到but中,但是菜品序號在item的控件中,則需要再次獲取item中的控件
                foreach (Control lab in item.Controls)//在item控件集合中尋找控件命名為lab
                {
                    if (lab.Tag.ToString()=="index")
                    {
                        btn.Text = lab.Text;//將獲取到的菜品序號添加到btn中
                    }
                }
                flowLayoutPanel2.Controls.Add(btn);//將按鈕添加到FlowLayoutPanel2中
                btn.Click += But_Click;//添加單擊事件
            }
        }
        int count = 0;
        //單擊相應按鈕時將該按鈕序號所對應的菜品名稱添加到FloowLayoutPanel3中,將總金額添加到label33中
        private void But_Click(object sender, EventArgs e)
        {
            //因為菜品名稱以及單價在item控件中,所以需要獲取到item控件
            //在當前事件中不能直接獲取item控件所以需要給btn添加標簽,將item控件裝進btn標簽中
            //然后在當前事件中通過對sender接收其次來獲取item控件
            //sender:事件發(fā)起者是誰誰就是sender(當點擊第一個按鈕,第一個按鈕就是sender)
            Button clickbtn=(Button)sender;//先將sender用button接收
            //通過Tag間接拿到item控件
            Control item2 = (Control)clickbtn.Tag;//將item用控件接收
            Label lb = new Label();
            lb.Font = new Font("黑體",12f,FontStyle.Bold);
            foreach (Control lab3 in item2.Controls)
            {
                if (lab3.Tag.ToString()=="name")
                {
                    lb.Text=lab3.Text;//將獲取到的菜名添加到lb中
                }
                if (lab3.Tag.ToString()=="money")
                {
                    count+=int.Parse(lab3.Text);
                    lb.Tag = lab3.Text;
                }
            }
            flowLayoutPanel3.Controls.Add(lb);//將lb添加到FlowLayoutPanel3中
            label33.Text = count+"元";//將count賦值給label33
            lb.Click += Lb_Click;
        }
        //實現(xiàn)點擊已點菜單中的菜品讓其刪除并且減少相應的消費金額
        private void Lb_Click(object sender, EventArgs e)
        {
            Label lb2=(Label)sender;//sender就是事件發(fā)起者lb,所以用Label接收
            //刪除已點菜品
            lb2.Dispose();
            //減少相應的消費金額
            count-=int.Parse(lb2.Tag.ToString());
            label33.Text = count+"元";//將count賦值給label33
        }
    }
}

效果圖

加載時

C#如何實現(xiàn)簡單點餐系統(tǒng)

點擊按鈕后

C#如何實現(xiàn)簡單點餐系統(tǒng)

點擊已點菜單中的烤腰花和烤板筋

C#如何實現(xiàn)簡單點餐系統(tǒng)

以上是“C#如何實現(xiàn)簡單點餐系統(tǒng)”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業(yè)資訊頻道!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI