您好,登錄后才能下訂單哦!
小編給大家分享一下C#如何實現(xiàn)簡單點餐系統(tǒng),相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
具體內(nèi)容如下
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)建對象Label lb = new Label();
代碼添加事件btn.Click += But_Click;步驟:先鍵入需要添加事件的對象然后鍵入點選擇需要的事件+=Tab
Tag的用法(先存后?。?/p>
1、需要的屬性添加到Tag中
2、在需要時只需把Tag賦值給對象即可獲取到需要的屬性
具體代碼如下:
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)”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業(yè)資訊頻道!
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。