C#点餐系统_点餐系统数据库设计
2023-06-13 09:13:44 时间
大家好,又见面了,我是你们的朋友全栈君。
一.编程思想
1.首先考虑需要什么样的界面; 2.界面中需要用到的控件,以及控件的简单设置; 3.在不需要按钮控件的情况下,点击会生成按钮的实现; 4.通过点击后生成的菜品统计以及价格的自动计算;
二.编程核心
1.获取控件中的内容; 2.添加按钮点击事件; 3.对控件中的内容封装传递后并在下一步取出; 4.label控件和button控件的生成; 5.主要用到了foreach进行遍历;
三.实现过程
1.界面的设置
本次主要用到的控件有flowLayoutPanel1和label, flowLayoutPanel:处理其组件的布局并在流局中自动排列它们; (文本内容可以自行设置)
但是必须对flowLayoutPanel进行边框设置,否则会不可见
2.控件的简单设置
tag:与对象关联的用户自定义数据,(主要用来获取控件的文本,tag内的内容可以自己设置,3个都要进行设置)
四.代码实现部分
1.在窗体加载时完成的操作
在加载时用代码进行对应菜品编号的获取并生成对应数字的按钮,代码如下:
private void Form1_Load(object sender, EventArgs e)
{
this.Text ="地方点餐系统";
//为菜品添加点击后的按钮
//采用foreach循环进行遍历
//control:控件类型
foreach (Control item in flowLayoutPanel1.Controls)//遍历 flowLayoutPanel1中的控件
{
//实例化button
Button bt = new Button();
bt.Size = new Size(50,50);//设置按钮的大小
bt.Font = new Font("楷体",20f);//设置按钮中的字体
bt.Tag = item;//对item进行封装以便于点击按钮事件时可以获取想要的东西
//遍历 flowLayoutPanel中的label对tag进行获取并生成对应文本的button按钮
foreach (Control control in item.Controls)//遍历flowLayoutPanel1中对应的label控件
{
if (control.Tag.ToString()=="index")
{
bt.Text =control.Text;//将获取到的control文本值赋给按钮bt
}
}
flowLayoutPanel10.Controls.Add(bt);//向要显示的flowLayoutPanel中添加对应的按钮
bt.Click += Btn_Click;//添加点击事件
bt.AutoSize = true;//自动适应内容的大小
}
}
2.当点击对应按钮时应该获取到的”菜名”
private void Btn_Click(object sender, EventArgs e)
{
Button index = (Button)sender;//sender的对象是button
Control fz = (Control)index.Tag;//对获取到的tag进行控件类型的转换
//实例化label控件
Label lb = new Label();
lb.Font = new Font("楷体", 20f);//设置label中的字体
foreach (Control item in fz.Controls)//对获取到tag内容的进行遍历
{
if (item.Tag.ToString()=="name")//判断获取到的tag是否等于name,也就是菜名
{
lb.Text = item.Text;
}
lb.AutoSize = true;//显示完整的label名称
flowLayoutPanel11.Controls.Add(lb);//向要显示的flowLayoutPanel中添加对应的label
}
3.对应的菜品价格进行相加
int count=0;//定义一个变量用于计算最下面的价格相加问题
if (item.Tag.ToString()=="money")//判断获取到的tag是否等于money,也就是价格
{
count += int.Parse(item.Text);
}
label27.Text = count + "元";
五.运行结果
六.案例完成难点分析
1.对于生成按钮点击事件
//bt为你前面所实例化按钮的名称
bt.Click += Btn_Click;//添加点击事件
bt.Click -= Btn_Click;//取消点击事件
Button index = (Button)sender;//sender的对象是button
2.对于tag的封装再进行获取
bt.Tag = item;//对item进行封装以便于点击按钮事件时可以获取想要的东西
Control fz = (Control)index.Tag;//对获取到的tag进行控件类型的转换
所谓熟能生巧,万事开头难,只要坚持不懈多多努力没有什么可以阻挡我们前进的步伐!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/196227.html原文链接:https://javaforall.cn
相关文章
- c# 方法调用链System.Diagnostics.StackTrace[通俗易懂]
- c# mysql executenonquery_C#与数据库访问技术总结(八)之ExecuteNonQuery方法
- c# mysql executenonquery_C#与数据库访问技术之ExecuteNonQuery方法
- C#-ListView的使用
- 利用C#远程存取Access数据库
- c#连接字符串数据库服务器端口号.net状态服务器端口号
- C#操作数据库总结(vs2005+sql2005)
- asp.netc#调用百度pai实现在线翻译,英文转中文
- 使用C#处理WebBrowser控件在不同域名中的跨域问题
- C#操作IIS程序池及站点的创建配置实现代码
- C#生成验证码取随机数字加字母(改进版)
- C#三种判断数据库中取出的字段值是否为空(NULL)的方法
- Windows8Metro用C#连接SQLite及创建数据库,数据表的增删改查的实现
- C#中的where泛型约束介绍
- c#之圆形无标题栏椭圆窗体的实现详解
- C#使用非托管代码直接修改字符串的方法
- c#异步读取数据库与异步更新ui的代码实现
- c#生成excel示例sql数据库导出excel
- C#连接SQL数据库的方法及常用连接字符串
- c#文件助手类分享(读取文件内容操作日志文件)
- c#连接sqlserver数据库、插入数据、从数据库获取时间示例
- C#结合数据库的数据采集器示例
- C#判等对象是否相等的方法汇总
- C#采用OpenXml给Word文档添加表格