实训四WinForms程序设计初步_第1页
实训四WinForms程序设计初步_第2页
实训四WinForms程序设计初步_第3页
实训四WinForms程序设计初步_第4页
实训四WinForms程序设计初步_第5页
已阅读5页,还剩14页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实训四winforms 程序设计初步实训目的:1、理解 windows 窗体2、使用基本控件如标签、文本、按钮、列表框和组合框3、掌握窗体的常用属性和方法4、使用 winforms 中的高级控件5、? 单选按钮6、? 图片框7、? 选项卡控件8、? 滚动条9、? 进度条实训内容:建立个人简历的windows应用程序。建立一个模拟的计算器应用程序。建立一个媒体播放机应用程序。实训设备仪器: pc50台,要求: windows7/xp/2000/2003操作系统,配置vc#2005/2008 运行环境,安装sql server2000/2005/2008数据库管理系统实训步骤:windows窗体是

2、 visual studio .net提供的集成开发环境(ide),可用于 windows应用程序开发。它带有可用于创建gui(graphical user interface,图形用户界面)的所有现成界面组件。1:创建 windows 窗体个人简历应用程序问题请编写一个简单的个人简历程序,要求可以通过文本框输入姓名,通过单选按钮设置性别,通过下拉列表框选择文化程度,通过文本区域填写其他个人信息;通过文件对话框选择照片并显示;通过两个下拉列表框来关联选择籍贯。指导教师分析解题思路该问题需要开发一个窗体,要求对用户的简历信息进行登记。该应用程序主要用到按钮、文本输入框、图片显示框、下拉列表框和列

3、表框等控件。分析主要通过对窗体和各控件相应的事件处理函数进行编程,包括窗体的load、下拉框的selectedindexchanged 、按钮的 click事件。参考步骤:先看看窗体的界面效果:图 5.1 登录屏幕(1)新建一个名为“personalresume”的基于 windows应用程序的项目。(2)将文件“ form1.cs ”重命名为“ personinfo.cs”。(3)设计窗体, 方法是添加五个标签控件、一个文本框、两个按钮、两个单选按钮、一个图片显示框、一个下拉列表框和列表框。如表5.1 所示列出了每个控件的属性。表 5.1 窗体的控件属性控件类型name 属性text 文本说

4、明label lab_name 姓名:label lab_sex 性别:label lab_nativeplace 籍贯:label lab_photo 照片:label lab_otherinfo 其他信息:textbox tbx_name radiobutton rbn_male 男性radiobutton rbn_female 女性combobox cbx_province listbox lbx_city picturebox pbx_photo richtextbox rtbx_otherinfo button btn_browse 浏 览button btn_ok 确 定(4)在窗

5、体的load 事件中编写下列代码。 private void personinfo_load(object sender, eventargs e) cbx_province.items.add(浙江省 ); cbx_province.items.add(江苏省 ); cbx_province.selectedindex = 0; (5)在 cbx_province的 selectedindexchanged事件中编写下列代码。 private void cbx_province_selectedindexchanged(object sender, eventargs e) if (cbx_

6、province.selecteditem != null) string provincestr = cbx_province.selecteditem.tostring().trim(); string zjcitys =杭州市 , 宁波市 , 温州市 , 绍兴市 , 台州市 , 湖州市 , 金华市 , 嘉兴市 , 衢州市 ,丽水市 , 舟山市 ; string jscitys = 常州市 , 淮安市 , 连云港市 , 南京市 , 南通市 , 苏州市 , 宿迁市 , 泰州市 , 无锡市 , 徐州市 , 盐城市 ,扬州市 , 镇江市 ; lbx_city.items.clear(); /清空

7、所有的item 项 switch (provincestr) case 浙江省 : lbx_city.items.addrange(zjcitys); /添加浙江省的城市 break; case 江苏省 : lbx_city.items.addrange(jscitys); /添加江苏省的城市 break; (6)在 btn_browse 的 click事件中编写下列代码。 private void btn_browse_click(object sender, eventargs e) openfiledialog imagedialog = new openfiledialog(); im

8、agedialog.filter = bmp(*.bmp)|*.bmp|jpeg(*.jpeg)|*.jpeg|jpg(*.jpg)|*.jpg|gif (*.gif)|*.gif|png(*.png)|*.png; imagedialog.title = 选择照片 ; if (imagedialog.showdialog() = dialogresult.ok) pbx_photo.imagelocation = imagedialog.filename; (7)在 btn_ok 的 click事件中编写下列代码。 private void btn_ok_click(object sende

9、r, eventargs e) if (tbx_name.text = & tbx_name.text.length 1) messagebox.show(请填写姓名! , 提示 , messageboxbuttons.ok, messageboxicon.information); return; if (lbx_city.selecteditem = null) messagebox.show(请选择籍贯! , 提示 , messageboxbuttons.ok, messageboxicon.information); return; messagebox.show(你的简历信息

10、将会保存到数据库中,n 以便招聘企业查询!, 提示 , messageboxbuttons.ok, messageboxicon.information); this.close(); (8)完整的代码如下:using system; using system.collections.generic; using system.componentmodel; using system.data; using system.drawing; using system.text; using system.windows.forms; namespace personalresume public

11、 partial class personinfo : form public personinfo() initializecomponent(); private void cbx_province_selectedindexchanged(object sender, eventargs e) if (cbx_province.selecteditem != null) string provincestr = cbx_province.selecteditem.tostring().trim(); string zjcitys =杭州市 , 宁波市 , 温州市 , 绍兴市 , 台州市

12、, 湖州市 , 金华市, 嘉兴市 , 衢州市 ,丽水市 , 舟山市 ; string jscitys = 常州市 , 淮安市 , 连云港市 , 南京市 , 南通市 , 苏州市, 宿迁市 , 泰州市 , 无锡市 , 徐州市 , 盐城市 , 扬州市 , 镇江市 ; lbx_city.items.clear(); /清空所有的item 项 switch (provincestr) case 浙江省 : lbx_city.items.addrange(zjcitys); /添加浙江省的城市 break; case 江苏省 : lbx_city.items.addrange(jscitys); /添加江

13、苏省的城市 break; private void btn_browse_click(object sender, eventargs e) openfiledialog imagedialog = new openfiledialog(); imagedialog.filter = bmp(*.bmp)|*.bmp|jpeg(*.jpeg)|*.jpeg|jpg(*.jpg)|*.jpg|gif (*.gif)|*.gif|png(*.png)|*.png; imagedialog.title = 选择照片 ; if (imagedialog.showdialog() = dialogres

14、ult.ok) pbx_photo.imagelocation = imagedialog.filename; private void btn_ok_click(object sender, eventargs e) if (tbx_name.text = & tbx_name.text.length 1) messagebox.show(请填写姓名! , 提示 , messageboxbuttons.ok, messageboxicon.information); return; if (lbx_city.selecteditem = null) messagebox.show(请

15、选择籍贯! , 提示 , messageboxbuttons.ok, messageboxicon.information); return; messagebox.show(你的简历信息将会保存到数据库中,n 以便招聘企业查询!, 提示 , messageboxbuttons.ok, messageboxicon.information); this.close(); private void personinfo_load(object sender, eventargs e) cbx_province.items.add(浙江省 ); cbx_province.items.add(江苏省

16、 ); cbx_province.selectedindex = 0; (9)通过从菜单中选择“生成”“生成解决方案”,来生成该解决方案。(10)通过从菜单中选择“调试”“开始执行(不调试)”选项来执行此应用程序。程序运行效果图:创建一个计算器应用程序问题构建一个简单的计算器指导问题说明该计算器提供加减乘除功能,支持小数输入。分析该问题需要一个窗体,添加0-9 数字按钮,和一个小数点按钮;4 个数学运算符按钮、一个清除按钮和一个等号(计算)按钮;一个文本框用来显示输入的数和计算结果。参考步骤:新建一个“windows ”应用程序项目。将“form1.cs ”文件的名称更改为“calculato

17、r.cs”。()在 button1-button9单击事件处理函数如下: private void button0_click(object sender, eventargs e) if (blnclear)/如果准备输入下一个加数,应先清除textbox1显示内容 textbox1.text = 0; blnclear = false; button b1 = (button)sender; if (textbox1.text != 0) textbox1.text += b1.text; else textbox1.text = b1.text; ()为“ . ”按钮事件处理函数添加如下

18、代码: private void btn_dot_click(object sender, eventargs e) if (blnclear) /如果准备输入下一个数,应先清除textbox1显示内容 textbox1.text = 0; blnclear = false; int n = textbox1.text.indexof(.); if (n = -1)/如果没有小数点,增加小数点,防止多次输入小数点 textbox1.text += .; ()在加、减、乘、除单击事件处理函数如下: private void btn_add_click(object sender, eventar

19、gs e) double dbsecond = convert.todouble(textbox1.text); if (!blnclear)/如果未输入第二个操作数,不运算 switch (stroper)/按记录的运算符号运算 case +: sum += dbsecond; break; case -: sum -= dbsecond; break; case *: sum *= dbsecond; break; case /: sum /= dbsecond; break; if (sender = btn_add) stroper = +; if (sender = btn_sub)

20、 stroper = -; if (sender = btn_mul) stroper = *; if (sender = btn_div) stroper = /; if (sender = btn_equ) stroper = =; textbox1.text = convert.tostring(sum); blnclear = true; ()完整的代码如下:using system; using system.collections.generic; using system.componentmodel; using system.data; using system.drawin

21、g; using system.text; using system.windows.forms; namespace e3_22 public partial class calculator : form double sum = 0; bool blnclear = false; string stroper = +; public calculator() initializecomponent(); private void button0_click(object sender, eventargs e) if (blnclear)/如果准备输入下一个加数,应先清除textbox1

22、显示内容 textbox1.text = 0; blnclear = false; button b1 = (button)sender; if (textbox1.text != 0) textbox1.text += b1.text; else textbox1.text = b1.text; private void btn_dot_click(object sender, eventargs e) if (blnclear) /如果准备输入下一个数,应先清除textbox1显示内容 textbox1.text = 0; blnclear = false; int n = textbox

23、1.text.indexof(.); if (n = -1)/如果没有小数点,增加小数点,防止多次输入小数点 textbox1.text += .; private void btn_add_click(object sender, eventargs e) double dbsecond = convert.todouble(textbox1.text); if (!blnclear)/如果未输入第二个操作数,不运算 switch (stroper)/按记录的运算符号运算 case +: sum += dbsecond; break; case -: sum -= dbsecond; bre

24、ak; case *: sum *= dbsecond; break; case /: sum /= dbsecond; break; if (sender = btn_add) stroper = +; if (sender = btn_sub) stroper = -; if (sender = btn_mul) stroper = *; if (sender = btn_div) stroper = /; if (sender = btn_equ) stroper = =; textbox1.text = convert.tostring(sum); blnclear = true; p

25、rivate void btn_c_click(object sender, eventargs e) textbox1.text = 0; sum = 0; blnclear = false; stroper = +; ()生成和执行此应用程序,效果如下图所示:程序运行结果图实验总结根据实验内容和步骤,写出实验体会。实训五、调试、测试和异常处理实训目的:理解如何调试应用程序和排除错误掌握如何测试 c# 应用程序了解测试和调试的区别在程序中进行错误捕获和错误处理实训内容:调试 c#应用程序。检测并处理异常。自定义异常类实训设备仪器: pc50台,要求: windows7/xp/2000/200

26、3操作系统,配置vc#2005/2008 运行环境,安装sql server2000/2005/2008数据库管理系统实训步骤: visual studio.net提供了多种调试功能,可让程序在其中的不同位置暂停执行,以便更改变量或仔细查看代码如何工作或为什么无法工作。c# 提供了一种结构化、统一且类型安全的方法,通过使用异常来处理系统级和应用程序级错误情况。1:调试应用程序问题采用多种查看方式来对变量值进行监视。问题说明调试“ winforms 基础知识第一部分1”中创建的项目,以监视变量的值。分析分析解题思路该问题需要在所需代码行处设置断点,并监视变量的值。然后可以通过“局部变量”窗口或“

27、监视”窗口查看或更改变量的值。另外也可以使用“即时”窗口来检查任何变量的值。参考步骤:(1)打开上机: winforms基础知识第一部分1 中创建的应用程序。(2)打开“ personinfo.cs”文件并设置断点(当键盘光标位于需要添加断点所在的代码行时按下f9),如下图所示。设置断点(3)运行此应用程序。焦点变为第一个断点后,程序将暂停执行。选择“调试”“窗口”“局部变量”,以打开“局部变量”窗口,此窗口将显示当前位于程序作用域内的所有变量以及它们的值。检查这些变量的值,如下图所示。“局部变量”窗口(4)右键单击方法中的provincestr变量,然后选择“添加监视”。此时将显示“添加监视

28、”窗口以及provincestr的当前值,如下图所示。可以看出,“监视”窗口只列出已经设置为监视的变量,这与“局部变量”窗口显示作用域内的所有局部变量有所不同。如果程序执行的当前作用域存在许多变量,但其中只有少数变量需要跟踪,则“监视”窗口将十分有用。“监视”窗格(5)单击“值”列,在“监视”窗格中将provincestr变量的值更改为“江苏省”。(6)选择“调试”“窗口”“即时”,以显示即时模式的“命令”窗口。要检查变量的值,可使用语法 。例如,键入 ?provincestr即可检查变量provincestr的值,如下图所示。即时模式的“命令”窗格(7)单击“调试”“继续”,以继续执行程序。

29、点击窗体上的浏览按钮,去触发click事件,控制权将转到下一个断点行。将鼠标指针指向变量imagedialog.title。该值将显示在一个小框中,如下图所示。显示 imagedialog.title的当前值(8)选择“调试”“快速监视”,以显示当前对象的值,如下图所示。“快速监视”窗口“快速监视”窗口显示当前对象的值。关键字this代表当前的对象。如果要查看对象字段的属性值,可在“快速监视”窗口中键入属性名,然后按下enter 键。此时将显示该值。例如,键入this.height即可查看 height变量包含的值。2:处理异常问题创建一个 c#应用程序,只接受-1000 至 1000 之间的

30、整数做为除数或者被除数。如果用户试图输入0,则应显示除数为零的错误消息提示。指导问题说明对程序中出现异常的部分,进行捕捉,不同的异常类型进行不同的处理。分析指导教师分析解题思路如果用户输入的值为-1000 至 1000 以外的数字,则可使用indexoutofrangeexception来处理异常。catch(indexoutofrangeexception ex) label3.text =错误:数字应介于-1000 与 1000 之间。 +ex.message; 字符转换时发生的异常可使用formatexception类来处理。catch (formatexception) / 处理转换发

31、生的异常 label3.text = 请将被除数或除数的值输入为数字!; 所有的一般异常均可使用exception类来处理。catch(exception e) console.writeline(错误: +e.message); 参考步骤:()创建一个名为exceptionexample的窗体应用程序。()在 form1窗体中添加相应的控件(2 个文本输入框、 3 个文本显示框、一个按钮),再添加以下代码。using system; using system.collections.generic; using system.componentmodel; using system.data

32、; using system.drawing; using system.text; using system.windows.forms; namespace exceptionexample public partial class form1 : form public form1() initializecomponent(); private void button1_click(object sender, eventargs e) int a, b, c; try / 试图捕获异常 / 将文本转换为int32 类型的整数 a = convert.toint32(textbox1.

33、text); b = convert.toint32(textbox2.text); if (a 1000) throw new indexoutofrangeexception(您键入的除数是 + a); if (b 1000) throw new indexoutofrangeexception(您键入的除数是 + b); c = a / b; label3.text = 两数的商为: + c.tostring(); catch (formatexception) / 处理转换发生的异常 label3.text = 请将被除数或除数的值输入为数字!; catch (dividebyzero

34、exception) / 处理除数为零的异常 label3.text = 除数不能为零! ; catch (indexoutofrangeexception ex) label3.text=错误:数字应介于-1000 与 1000 之间。 + ex.message; finally / 清除异常 messagebox.show(程序正常结束 ); ()选择“生成”“生成解决方案”选项,以生成此项目。()选择“调试”“开始执行(不调试)”,以执行此应用程序。此程序的输出结果下图所示。输出结果无论异常是否引发,都会执行finally语句块。3:创建自定义异常问题通过继承系统的application

35、exception类,创建用户自定义的异常类。指导问题说明创建一个 windows应用程序,用户计算货品的总金额。此程序接受货品的代码、名称、价格和单位数量。当用户输入的数值不符合要求的格式时,显示相应的错误消息。该程序必须要有异常处理,用自定义异常来实现。分析指导教师分析解题思路该问题需要一个窗体,用以接受用户输入的所有信息。用户在产品代码中应当只输入数值。必须新建一个类来定义自定义异常。每当发生错误时,代码应引发自定义异常,并输出相应的错误消息。解决方案()创建一个名为userexceptionclass的 windows应用程序。将“ form1.cs ”文件更改为“frmpurchas

36、eitem.cs”。()设计如图所示的窗体“货物金额”窗体()设置控件的各种属性,如下表所示。控件属性表控件属性文本其他窗体frmpurchaseitem 货物金额标签lblproductcode 货物代码标签lblprocudtname 货物名称标签lblproductrate 价格:标签lblunits 数量:标签lbltotalprice 总金额:文本框txtproductcode 文本框txtprocudtname 文本框txtproductrate 文本框txtunits 文本框txttotalprice enabled:false 按钮btncalculate 计算机 (&c) 按钮btnexit 退出 (&x) () 通过选择 “项目” “添加类” 来新建一个类。将“ class1.cs ”更改为 “exceptionclass.cs”。()在“ exceptionclass.cs”中添加一下代码。using system; namespace example_3 public class exceptionclass:applicationexception public exceptionclass(string message):base(messa

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论