C#框架winform实现简单点餐系统
本文实例为大家分享了C#框架winform实现简单点餐系统的具体代码,供大家参考,具体内容如下
一、编程思想
1、构思界面并进行设计
2、思考需要用到的控件以及控件需要更改的属性
3、构思将要触发的事件以及部分业务流程
4、通过点击菜品,进行添加,并计算价格
5、界面的美化以及功能的完善
二、编程核心
1、如何获取控件中的内容
2、点击按钮,查找并添加查找的内容
3、添加按钮对应的点击事件
4、如何一次性取出控件中的内容
5、主要用forEach遍历控件
6、数据类型的转换
7、控件Tag属性的使用
8、如何从菜品价格中取出单价
9、显示菜品与计算价格功能的实现
三、实现过程
1、主要用到的控件
- FlowLayoutPanel:处理其组件的布局并在流局中自动排列它们
- Label:为控件提供运行时信息或说明性文字
FlowLayoutPanel:BorderStyle(指示面板是否应具有边框)
Fixed3D:3D立体边框【C#框架winform实现简单点餐系统】FlowLayoutPanel、Label:Tag(与对象关联的用户定义数据)
FixedSingle:普通边框
None:无边框
菜名编号:Tag=index
菜名名:Tag=name
菜名价格:Tag=money
文章图片
四、代码实现
1、窗体加载事件
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、定义全局变量
//定义一个记录总价格的变量countint count = 0; //创建一个字符串接收价格string result = "";
3、按钮点击事件
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){//判断控件标记为nameif (item.Tag.ToString() == "name"){//设置Label中的文本为菜品名称lab.Text = item.Text; }//判断控件标记为moneyif (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'){//将数字的字符转换成字符串后,赋给resultresult = ch.ToString(); }}//数据类型转换,以下两种方法均可// count += int.Parse(item.Text); count += Convert.ToInt32(result); }//将Label添加到BottomDesign中BottomDesign.Controls.Add(lab); //设置结算的价格,并让其显示jiesuan.Text = count + "元"; }}
五、运行结果
文章图片
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
推荐阅读
- android第三方框架(五)ButterKnife
- 关于QueryWrapper|关于QueryWrapper,实现MybatisPlus多表关联查询方式
- MybatisPlus使用queryWrapper如何实现复杂查询
- python学习之|python学习之 实现QQ自动发送消息
- 标签、语法规范、内联框架、超链接、CSS的编写位置、CSS语法、开发工具、块和内联、常用选择器、后代元素选择器、伪类、伪元素。
- 孩子不是实现父母欲望的工具——林哈夫
- opencv|opencv C++模板匹配的简单实现
- Node.js中readline模块实现终端输入
- java中如何实现重建二叉树
- 人脸识别|【人脸识别系列】| 实现自动化妆