【案例】设计一个顾客选购商品的系统。其中,顾客身份有两类,一类是VIP,另一类是普通会员;商品种类有3种。分别是上衣、裤子和鞋子。其中,VIP享受8折优惠和商店赠送的礼品,而普通会员都不享受。单击【确定】按钮后,系统根据顾客不同选择,在文本框显示顾客最终的选购结果。顾客默认身份为普通会员。

【案例目的】(1)学会使用单选按钮;

(2)学会使用复选框;

(3)掌握选择结构与单选按钮、复选框的配合使用。

【案例实现步骤】

1.新建项目:欢迎购物

2.设计程序页面

(1)添加控件

本案例需要添加2个单选按钮、4个复选框、1个按钮、1个标签、1个文本框。

添加控件后的效果如图:

(2)设置控件属性

3.编写代码

在设计器视图双击【确定】按钮,VA.NET自动添加了【确定】按钮的Click(单击)事件处理方法button1_Click(),光标定位在该方法的一对大括号之间。在光标定位处输入如下代码:

string rb1 = "", rb2 = "", cb1 = "", cb2 = "", cb3 = "", cb4 = "";
if (radioButton1.Checked == true)
rb1 = radioButton1.Text + ",享受8折优惠";
else
{
rb2 = radioButton2.Text;
checkBox4.Checked= false;
}
if (checkBox1.Checked == true)
cb1 = checkBox1.Text + " ";
if (checkBox2.Checked == true)
cb2 = checkBox2.Text + " ";
if (checkBox3.Checked == true)
cb3 = checkBox3.Text + " ";
if (checkBox4.Checked == true)
cb4 = "并享有"+checkBox4 .Text ;
textBox1.Text="您是"+rb1 +rb2+ ",您选购的是:" + cb1 + cb2 + cb3 + cb4;

在设计器视图双击【VIP】单选按钮,VA.NET自动添加了【VIP】按钮的chackedchanged事件处理方法radioButton1_chackedchanged1(),光标定位在该方法的一对大括号之间。在光标定位处输入如下代码:

checkBox4.Enabled = true;

在设计器视图双击【普通会员】单选按钮,VA.NET自动添加了【普通会员】按钮的chackedchanged事件处理方法radioButton2_chackedchanged1(),光标定位在该方法的一对大括号之间。在光标定位处输入如下代码:

checkBox4.Enabled = false ;

4.保存程序

选择【文件】|【保存】命令或单击工具栏上的【保存】按钮保存程序。

5.运行调试程序

(1)

(2)

【相关知识及注意事项】

1.checked属性

checked属性是单选按钮、复选框的一个属性,它表示单选按钮、复选框是否被选中。true表示单选按钮、复选框被选中,false表示未被选中。所以程序可以通过checked属性判断单选按钮、复选框是否被选中,从而执行相应的代码。

2.Enabled属性

Enabled属性用来设置窗体或控件时有效或无效,其值为true表示有效,false表示无效。本案例中,顾客为普通会员时,Enabled属性为false。

3.Checkedchanged事件

当Checked属性值改变时,触发Checkedchanged事件。当选中【普通会员】单选按钮时,就触发了它的Checkedchanged事件,普通会员是不可选择“赠送礼品”的,所以设置“赠送礼品”复选框Enable属性为false。当选中【VIP】单选按钮时,就触发了它的Checkedchanged事件,VIP是可以选择“赠送礼品”的,所以设置“赠送礼品”复选框Enable属性为true。

第三章 C#程序结构[3.2 选择结构的应用(Windows窗体应用程序)(四)]的更多相关文章

  1. 第一章 C#入门 (Windows窗体应用程序)(三)

    [案例] 编写一个Windows窗体应用程序,窗体上有一个文本框和两个按钮([显示]和[清除]按钮). 单击[显示]时,文本框的背景变为蓝色并且居中显示“努力学习C#”: 单击[清除]按钮,文本框的背 ...

  2. 第一章 C#入门(Windows窗体应用程序)(二)

    C#窗体应用程序(二) [案例]设计登录界面,效果如下: [案例实现步骤] 1.新建项目(Windows控制台应用程序 文件→新建→项目:选择“项目类型”为Visual C#,“模板”为Windows ...

  3. 第一章 C#入门 (Windows窗体应用程序)(一)

    我的第一个窗体应用程序(一) [案例说明]  在文本框中显示一行文字“Hello C#!”,单击[显示]按钮后在文本框中显示文字:单击[清除]按钮后清除文本框中的内容. [案例实现步骤] 1.新建项目 ...

  4. 选择结构二switch选择结构

     在上一章节我们讲解了if选择结构  本章我们学习 switch选择结构 还要知道if选择结构和switch结构的区别 为什么学习了if选择结构还要学习switch选择结构  以及 两种选择结构的运用 ...

  5. Windows窗体应用程序(非Console)使用libuv实现简单的异步WEB服务器

    libuv是一个很强大的异步处理框架(严格意义上不能叫框架,其实就是一组异步函数库,当然框架这东西有各种各样的定义和理解_^...),最初的的目的是用于NODEJS的异步处理,不过因为它是一个独立的项 ...

  6. 房上的猫:switch选择结构,与选择结构总结

    switch选择结构: 一.定义: switch选择结构,可以方便地解决等值判断问题二.语法:  switch(表达式){   case 常量1:    //代码块1;      break;   c ...

  7. C#开发Windows窗体应用程序的步骤

    使用C#开发应用程序时,一般包括创建项目.界面设计.设置属性.编写程序代码.保存项目.程序运行等6个步骤. 1.创建项目 在Visual Studio2017开发环境中选择“文件”→“新建”→“项目” ...

  8. Windows窗体应用程序常用的几个类的属性、方法以及事件

    System.Diagnostics.Process 属性 public bool EnableRaisingEvents { get; set; }//获取或设置在进程终止时是否应激发 Exited ...

  9. C#windows窗体应用程序如何自适应大小

    用C#的windows窗体应用程序做界面十分轻松,但是系统默认是没有让控件跟随窗体的大小改变而已改变的.所以需要我们手动去设置让窗体控件随着窗体的大小改变而改变.所以我们只需要将控件选择 然后把Anc ...

  10. API、Win32 SDK、Win32项目、MFC、Windows窗体应用程序的区别

    [原]API.Win32 SDK.Win32项目.MFC.Windows窗体应用程序的区别 首先来看一下每一个术语的定义: API:Application Programming Interface. ...

随机推荐

  1. Flask离线文档 --技术文档

    1.预览 2.文档下载 链接:Flask离线文档下载(v1.0.10)提取码:0x0x 

  2. 『OpenCV3』滤波器实现及使用滤波器降噪

    一.滤波器实现 我们实现这样一个基于拉普拉斯算子的滤波器核心,并使用它进行滤波,这可以做到锐化图像的效果, 0 -1 0 -1 5 -1 0 -1 0 首先我们完全手动的进行滤波,依赖指针操作, vo ...

  3. .net正则IP加端口,并返回IP加端口

    public string GetIp(string url) { var reg = new Regex(@"\d{2,3}([.]\d{1,3}){3}:\d{2,5}"); ...

  4. js 前端 table 导出 excel

    园子,github,stackoverflow 关于前端下载的文章不少 园子里大部分都是 利用ActiveXObject对象来实现,可他有个缺点安全等级,还有必须安装excel…… github,st ...

  5. mysql5.5大数据量下表结构升级

    升级一张4万多行(增加一个字段),且包含blob字段的表(blob字段包含100KB左右的数据),运行alter语句:ALTER TABLE `imgdetail` ADD COLUMN  `uplo ...

  6. jquery promise (Deferred)

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  7. day41-python多进程多线程-多线程共享

    线程共享变量多线程和多进程不同之处在于多线程本身就是可以和父进程共享内存的,这也是为什么其中一个线程挂掉以后,为什么其他线程也会死掉的道理. import threading def worker() ...

  8. 负载均衡----实现配置篇(Nginx)

    同类文章:负载均衡----概念认识篇 吐槽:自从那篇“探讨负载均衡”那篇文章被博客园吐槽后,心里极度不平衡,思来想去还是把名字改成“负载均衡----概念认识篇”,再加多几篇文章来诠释上篇文章的精华所在 ...

  9. 网络编程,socket

    1.网络编程 网络: TCP/IP 彼此之间遵守协议和规范!之间才能产生通信! IP: 每个人都有自己的身份证号! 用来标识我们网络中每一台计算机! IP地址= 网络地址 +主机地址 网络地址 :标识 ...

  10. 入坑deep learning 1

    想体验一下跑keras的感觉,按照这个小妹妹的教程:https://zhuanlan.zhihu.com/p/28333410 0. 大概花了十来个小时才搞定初步的小环境 1. 在linux 16.0 ...