case break结构与return的有关要点
//确认事件
private void cmd_ok_Click(object sender, EventArgs e)
{
//客户名称是否为空
if (txt_banhao.Text.TrimEnd() == "")
{
MessageBox.Show("电脑版号不能为空", "关闭", MessageBoxButtons.OK, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2);
txt_banhao.Focus();
return;//这个return必须写才能跳出整个点击事件,因为不会执行break,不写return就会往下执行switch语句
}
switch (lab_state.Text)
{
case "添加": //if()else()里面的return最多只能有一个,否则break会有警告
if (SpareIsExist(txt_banhao.Text.TrimEnd()) == true)
{
MessageBox.Show("该电脑版号已存在", "关闭", MessageBoxButtons.OK, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2);
//return; //不写return也行,因为会跳过else而执行break强制结束该点击按钮事件
}
else
{
//不存在旧版号
Ulock_Contral();
lab_logindate.Text = DateTime.Now.ToString("yyyy-MM-dd");
lab_update.Text = DateTime.Now.ToString("yyyy-MM-dd");
txt_banhao.Enabled = false;
cmd_ok.Enabled = false;
//return;//不写return也行,程序也会执行break结束 "添加"这个条件
}
break;
case "修改":
if (SpareIsExist(txt_banhao.Text.TrimEnd()) == true)
{
if (_state_touchang == "已投产")
{
MessageBox.Show("注意该版号已投产", "关闭", MessageBoxButtons.OK, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2);
//解锁各控件
Ulock_Contral();
txt_banhao.Enabled = false;
cmd_ok.Enabled = false;
}
if (lab_formstate.Text == "未制版")
{
//解锁各控件
Ulock_Contral();
txt_banhao.Enabled = false;
cmd_ok.Enabled = false;
}
if (lab_formstate.Text == "已制版")
{
MessageBox.Show("注意该版号已制版", "关闭", MessageBoxButtons.OK, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2);
//解锁各控件
Ulock_Contral();
txt_banhao.Enabled = false;
cmd_ok.Enabled = false;
}
if (lab_formstate.Text == "已投产")
{
MessageBox.Show("该版号已投产无法修改", "关闭", MessageBoxButtons.OK, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2);
//解锁各控件
//Ulock_Contral();
//txt_banhao.Enabled = false;
//cmd_ok.Enabled = false;
}
}
else
{
MessageBox.Show("不存在该电脑版号", "关闭", MessageBoxButtons.OK, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2);
}
break;
case "删除":
if (SpareIsExist(txt_banhao.Text.TrimEnd()) == true)
{
if (_state_touchang == "已投产")
{
MessageBox.Show("已投产不能删除", "关闭", MessageBoxButtons.OK, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2);
}
if (lab_formstate.Text == "未制版")
{
//解锁各控件
//Ulock_Contral();
txt_banhao.Enabled = false;
cmd_ok.Enabled = false;
cmd_save.Enabled = true;
}
else
{
MessageBox.Show("已制版不能删除", "关闭", MessageBoxButtons.OK, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2);
}
}
else
{
MessageBox.Show("不存在该电脑版号", "关闭", MessageBoxButtons.OK, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2);
}
break;
}
}
case break结构与return的有关要点的更多相关文章
- [转帖]Shell脚本中的break continue exit return
Shell脚本中的break continue exit return 转自:http://www.cnblogs.com/guosj/p/4571239.html break结束并退出循环 cont ...
- js中退出语句break,continue和return 比较 (转载)
在 break,continue和return 三个关键字中, break,continue是一起的,return 是函数返回语句,但是返回的同时也将函数停止 首先:break和continue两个一 ...
- js中退出语句break,continue和return 比较
js中退出语句break,continue和return 比较 在 break,continue和return 三个关键字中, break,continue是一起的,return 是函数返回语句,但是 ...
- JS中break continue和return的用法?
在 break,continue和return 三个关键字中, break,continue是一起的,return 是函数返回语句,但是返回的同时也将函数停止 break和continue: 退出循环 ...
- js中退出语句break,continue和return 比较(转)
原链接:http://blog.163.com/ued_er/blog/static/199703159201210283107315/ js中退出语句break,continue和return 比较 ...
- js中的break,continue和return到底怎么用?
为什么要说个?好像很简单,但是我也会迷糊,不懂有时候为什么要用return,然而break和continue也经常和他放在一起. 所以就一起来说一说,这三个看起来很简单,却常常会出错的关键词的具体用法 ...
- 【疑点】js中的break,continue和return到底怎么用?
转: [疑点]js中的break,continue和return到底怎么用? 为什么要说个?好像很简单,但是我也会迷糊,不懂有时候为什么要用return,然而break和continue也经常和他放在 ...
- js中退出语句break,continue和return 比较 (转)
在 break,continue和return 三个关键字中, break,continue是一起的,return 是函数返回语句,但是返回的同时也将函数停止 首先:break和continue两个一 ...
- js中的break,continue和return的用法及区别
为什么要说个?好像很简单,但是我也会迷糊,不懂有时候为什么要用return,然而break和continue也经常和他放在一起. 所以就一起来说一说,这三个看起来很简单,却常常会出错的关键词的具体用法 ...
随机推荐
- 《HiWind企业快速开发框架实战》(0)目录及框架简介
<HiWind企业快速开发框架实战>(0)目录及框架简介 本系列主要介绍一款企业管理系统快速开发框架,该框架旨在快速完成企业管理系统,并实现易维护可移植的目标. 使用逐个系统模块进行编码的 ...
- Android N 多窗口模式,你需要知道的一切
Android N中最大.最引人注意的变化就是Mutil-window模式.对于一个开发者,我们最关心的就是:Mutil-window模式下怎么配置mutil-window模式.Activity的生命 ...
- Javascript本质第一篇:核心概念
很多人在使用Javascript之前都至少使用过C++.C#或Java,面向对象的编程思想已经根深蒂固,恰好Javascript在语法上借鉴了Java,虽然方便了Javascript的入门,但要深入理 ...
- 巧用transform实现HTML5 video标签视频比例拉伸
前言 原文地址 曾几何时,项目中有碰到视频比例拉伸的需求,但是发现这个看似再普通不过的一个需求,找遍全网至今都没有找到解决方法.因为强制给video标签设置width和height的话只会将video ...
- kpvalidate开辟验证组件,通用Java Web请求服务器端数据验证组件
小菜利用工作之余编写了一款Java小插件,主要是用来验证Web请求的数据,是在服务器端进行验证,不是简单的浏览器端验证. 小菜编写的仅仅是一款非常初级的组件而已,但小菜为它写了详细的说明文档. 简单介 ...
- 在SqlServer2008R2中,在一张表上加上insert、update、delete触发器(带游标)
在日常工作中,在SqlServer2008R2中,需要向一张表上加上触发器,监控插入.更新.删除. --一个触发器内三种INSERT,UPDATE,DELETE状态 IF exists(select ...
- Python3 的json 和 PHP的json
Python3操作json的标准api库参考:https://docs.python.org/3/library/json.html#module-json >>> aa = ['/ ...
- C#设计模式系列:装饰模式(Decorator)
1. 装饰模式简介 装饰模式动态地给一个对象添加额外的职责.例如一幅画有没有画框都可以挂在墙上,画就是被装饰者.但是通常都是有画框的.在挂在墙上之前,画可以被蒙上玻璃,装到框子里,所以在画上加一层画框 ...
- sizzle分析记录:词法分析器(tokenize)
词法分析器(tokenize)? 词法分析器又称扫描器.词法分析是指将我们编写的文本代码流解析为一个一个的记号,分析得到的记号以供后续语法分析使用. sizzle引入了tokenize这个概念,意义? ...
- 编写简单的ramdisk(选择IO调度器)
前言 目前linux中包含anticipatory.cfq.deadline和noop这4个I/O调度器.2.6.18之前的linux默认使用anticipatory,而之后的默认使用cfq.我们在前 ...