欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時間:2021年07月21日 13:01:55   作者:Just Do Its  
這篇文章主要為大家詳細(xì)介紹了C#實現(xiàn)簡單點(diǎn)餐系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了C#實現(xiàn)簡單點(diǎn)餐系統(tǒng)的具體代碼,供大家參考,具體內(nèi)容如下

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

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

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

  • Tag:獲取或設(shè)置包含有關(guān)控件的數(shù)據(jù)的對象
  • sender:事件發(fā)起者是誰,誰就是sender

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

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

  • 代碼創(chuàng)建對象Label lb = new Label();
  • 代碼添加事件btn.Click += But_Click;步驟:先鍵入需要添加事件的對象然后鍵入點(diǎn)選擇需要的事件+=Tab

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

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

設(shè)計界面

具體代碼如下:

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();//將窗體顯示在屏幕中央
            //先設(shè)計界面
            //獲取FlowLayoutPanel中的控件對應(yīng)數(shù)據(jù)以及區(qū)分各個控件則需要給FlowLayoutPanel中控件加tag標(biāo)簽
            //   序號:index    菜名:name    價格:money
            //根據(jù)菜品數(shù)量來添加對應(yīng)的菜品序號按鈕(有幾個菜品添加幾個按鈕)
            foreach (Control item in flowLayoutPanel1.Controls)//獲取FlowLayoutPanel1中的控件
            {
                //創(chuàng)建對象(new)按鈕
                Button btn = new Button();//實例化
                btn.Size = new Size(70,45);//設(shè)置按鈕的大小
                btn.Font = new Font("黑體",20f);//設(shè)置按鈕文本顏色
                btn.Tag = item;//將item控件裝進(jìn)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;
        //單擊相應(yīng)按鈕時將該按鈕序號所對應(yīng)的菜品名稱添加到FloowLayoutPanel3中,將總金額添加到label33中
        private void But_Click(object sender, EventArgs e)
        {
            //因為菜品名稱以及單價在item控件中,所以需要獲取到item控件
            //在當(dāng)前事件中不能直接獲取item控件所以需要給btn添加標(biāo)簽,將item控件裝進(jìn)btn標(biāo)簽中
            //然后在當(dāng)前事件中通過對sender接收其次來獲取item控件
            //sender:事件發(fā)起者是誰誰就是sender(當(dāng)點(diǎn)擊第一個按鈕,第一個按鈕就是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)點(diǎn)擊已點(diǎn)菜單中的菜品讓其刪除并且減少相應(yīng)的消費(fèi)金額
        private void Lb_Click(object sender, EventArgs e)
        {
            Label lb2=(Label)sender;//sender就是事件發(fā)起者lb,所以用Label接收
            //刪除已點(diǎn)菜品
            lb2.Dispose();
            //減少相應(yīng)的消費(fèi)金額
            count-=int.Parse(lb2.Tag.ToString());
            label33.Text = count+"元";//將count賦值給label33
        }
    }
}

效果圖

加載時

點(diǎn)擊按鈕后

點(diǎn)擊已點(diǎn)菜單中的烤腰花和烤板筋

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • c#獲取gridview的值代碼分享

    c#獲取gridview的值代碼分享

    這篇文章主要介紹了C#如何在事件中獲得GridView里面TextBox的值,大家參考使用吧
    2013-12-12
  • c#基于Win32Api實現(xiàn)返回Windows桌面功能

    c#基于Win32Api實現(xiàn)返回Windows桌面功能

    本文分享下回到桌面功能的實現(xiàn)方法,效果與快捷鍵(Win+D)相同。有此需求的朋友可以參考下
    2021-05-05
  • C#實現(xiàn)自定義屏保的示例代碼

    C#實現(xiàn)自定義屏保的示例代碼

    這篇文章主要為大家詳細(xì)介紹了如何利用C#實現(xiàn)自定義屏保的功能,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)C#有一定的幫助,感興趣的小伙伴可以跟隨小編一起了解一下
    2022-12-12
  • C#構(gòu)建分頁應(yīng)用的方法分析

    C#構(gòu)建分頁應(yīng)用的方法分析

    這篇文章主要介紹了C#構(gòu)建分頁應(yīng)用的方法,結(jié)合實例形式分析了C#創(chuàng)建分頁功能的具體步驟與相關(guān)實現(xiàn)技巧,需要的朋友可以參考下
    2017-01-01
  • C#圖像亮度調(diào)整的方法

    C#圖像亮度調(diào)整的方法

    這篇文章主要介紹了C#圖像亮度調(diào)整的方法,涉及C#操作圖像亮度的相關(guān)技巧,需要的朋友可以參考下
    2015-04-04
  • C#線程中彈窗的制作方法

    C#線程中彈窗的制作方法

    這篇文章主要為大家詳細(xì)介紹了C#線程中彈窗的制作方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • C#連接數(shù)據(jù)庫的方法

    C#連接數(shù)據(jù)庫的方法

    ASP.NET連接數(shù)據(jù)庫的技術(shù)叫ADO.NET,它是用來向數(shù)據(jù)庫提交sql語句的一堆類。這里連接的是Sql Server 2008數(shù)據(jù)庫,其他數(shù)據(jù)庫用法差不多,就是調(diào)用的類名不一樣
    2015-11-11
  • c#使用Aspose打印文件的示例

    c#使用Aspose打印文件的示例

    這篇文章主要介紹了c#使用Aspose打印文件的示例,幫助大家更好的理解和學(xué)習(xí)使用c#,感興趣的朋友可以了解下
    2021-05-05
  • C#圓角窗體簡單實現(xiàn)方法

    C#圓角窗體簡單實現(xiàn)方法

    這篇文章主要介紹了C#圓角窗體簡單實現(xiàn)方法,涉及C#窗體設(shè)置的相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-09-09
  • C#編程實現(xiàn)DataTable添加行的方法

    C#編程實現(xiàn)DataTable添加行的方法

    這篇文章主要介紹了C#編程實現(xiàn)DataTable添加行的方法,結(jié)合兩個實例形式分析了C#操作DataTable實現(xiàn)動態(tài)添加行的相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-11-11

最新評論