服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - C# - C#框架winform实现简单点餐系统

C#框架winform实现简单点餐系统

2022-11-27 14:25不染-何程龙 C#

这篇文章主要为大家详细介绍了C#框架winform实现简单点餐系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了C#框架winform实现简单点餐系统的具体代码,供大家参考,具体内容如下

一、编程思想

1、构思界面并进行设计
2、思考需要用到的控件以及控件需要更改的属性
3、构思将要触发的事件以及部分业务流程
4、通过点击菜品,进行添加,并计算价格
5、界面的美化以及功能的完善

二、编程核心

1、如何获取控件中的内容
2、点击按钮,查找并添加查找的内容
3、添加按钮对应的点击事件
4、如何一次性取出控件中的内容
5、主要用forEach遍历控件
6、数据类型的转换
7、控件Tag属性的使用
8、如何从菜品价格中取出单价
9、显示菜品与计算价格功能的实现

三、实现过程

1、主要用到的控件

  • FlowLayoutPanel:处理其组件的布局并在流局中自动排列它们
  • Label:为控件提供运行时信息或说明性文字

2、主要设置的属性

FlowLayoutPanel:BorderStyle(指示面板是否应具有边框)

Fixed3D:3D立体边框
FixedSingle:普通边框
None:无边框

FlowLayoutPanel、Label:Tag(与对象关联的用户定义数据)

菜名编号:Tag=index
菜名名:Tag=name
菜名价格:Tag=money

C#框架winform实现简单点餐系统

四、代码实现

1、窗体加载事件

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
private void Form1_Load(object sender, EventArgs e)
        {
            //为窗体添加文本标题
            this.Text = "陕西美食点餐";
            //设置窗体居于页面中心显示
            this.CenterToScreen();
            //遍历TopDesign中的所有元素
            //Control:控件类型
            //采用forEach循环,进行遍历
            foreach (Control item in TopDesign.Controls)
            {
                //生成按钮
                //实例化按钮
                Button btn = new Button();
                //设置按钮部分属性
                //设置其大小
                btn.Size = new Size(30,30);
                //设置其字体
                btn.Font = new Font("楷体", 14F);
                //设置其背景颜色
                btn.BackColor = Color.White;
                //设置其自适应大小
                btn.AutoSize = true;
                //将子控件统一添加到btn的Tag中
                btn.Tag = item;
                //循环子控件
                foreach (Control control in item.Controls)
                {
                    //判断tag为菜品编号
                    if (control.Tag.ToString()=="index")
                    {
                        //设置按钮中的文本为菜品编号
                        btn.Text = control.Text;
                    }
                }
                //将按钮添加到MiddleDesign中
                MiddleDesign.Controls.Add(btn);
                //给按钮添加点击事件
                btn.Click += Btn_Click;
            }
        }

2、定义全局变量

?
1
2
3
4
//定义一个记录总价格的变量count
       int count = 0;
       //创建一个字符串接收价格
       string result = "";

3、按钮点击事件

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
private void Btn_Click(object sender, EventArgs e)
        {
            //将sender(触发者参数)绑定给按钮
            Button click_btn = (Button)sender;
            //将获取的Tag进行类型转换(Control),放入menu控件中
            Control menu = (Control)click_btn.Tag;
            //实例化label控件,用来写入菜名
            Label lab = new Label();
            //设置Label字体
            lab.Font = new Font("楷体", 14F);
            //遍历menu中的所有控件
            foreach (Control item in menu.Controls)
            {
                //判断控件标记为name
                if (item.Tag.ToString() == "name")
                {
                    //设置Label中的文本为菜品名称
                    lab.Text = item.Text;
                }
                //判断控件标记为money
                if (item.Tag.ToString() == "money")
                {
                    //遍历item.Text中的所有字符
                    for (int i = 0; i < item.Text.Length; i++)
                    {
                        //创建一个字符ch,保存遍历出的每个字符
                        char ch = item.Text[i];
                        //字符为数字
                        if (ch >= '0' & ch <= '9')
                        {
                            //将数字的字符转换成字符串后,赋给result
                            result = ch.ToString();
                        }
                    }
                    //数据类型转换,以下两种方法均可
                    // count += int.Parse(item.Text);
                    count += Convert.ToInt32(result);
                }
                //将Label添加到BottomDesign中
                BottomDesign.Controls.Add(lab);
                //设置结算的价格,并让其显示
                jiesuan.Text = count + "元";
            }
        }

五、运行结果

C#框架winform实现简单点餐系统

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。

原文链接:https://luckylifes.blog.csdn.net/article/details/105621675

延伸 · 阅读

精彩推荐
  • C#C#异步绑定数据实现方法

    C#异步绑定数据实现方法

    这篇文章主要介绍了C#异步绑定数据实现方法,实例分析了C#操作数据库及异步绑定的相关实现技巧,具有一定参考借鉴价值,需要的朋友可以参考下...

    我心依旧6932021-10-25
  • C#unity与vue交互(无第三方插件)

    unity与vue交互(无第三方插件)

    这篇文章主要讲述了如何使用vue在通过不是用第三方插件的情况下与Unity进行交互,该篇包含详细的图文讲解,内容比较详细,希望对你有所帮助...

    weixin_4495748211682022-11-23
  • C#Unity游戏之存储数据

    Unity游戏之存储数据

    这篇文章主要介绍了Unity游戏之存储数据,感兴趣的同学,可以拷贝代码,试验一下...

    510022639082022-11-14
  • C#C#实现单例模式的几种方法总结

    C#实现单例模式的几种方法总结

    这篇文章主要介绍了C#实现单例模式的几种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面...

    zls3659322022-10-28
  • C#Unity虚拟摇杆的实现方法

    Unity虚拟摇杆的实现方法

    这篇文章主要为大家详细介绍了Unity虚拟摇杆的实现方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    yy7634966685482022-09-01
  • C#C#中实现线程同步lock关键字的用法详解

    C#中实现线程同步lock关键字的用法详解

    实现线程同步的第一种方式是我们经常使用的lock关键字,它将包围的语句块标记为临界区,这样一次只有一个线程进入临界区并执行代码,接下来通过本文...

    ruozeng6202021-11-30
  • C#C#温故而知新系列教程之闭包

    C#温故而知新系列教程之闭包

    闭包是将一些执行语句的封装,可以将封装的结果像对象一样传递,在传递时,这个封装依然能够访问到原上下文。下面这篇文章主要给大家介绍了关于C#中...

    RstarYan8012022-02-24
  • C#C# MVC 微信支付教程系列之公众号支付代码

    C# MVC 微信支付教程系列之公众号支付代码

    本篇文章主要介绍了C# MVC 微信支付教程系列之公众号支付代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧...

    南宫萧尘4782021-12-15