第九节窗体和标准控件
(二)实验目的1.掌握列表框和组合框控件的使用方法2.掌握滚动条和定时器控件的使用方法实验内容
一、列表框和组合框控件的使用程序1:编写程序。要求:程序运行初期,在窗体左边的列表框中生成10个由小到大排列的10到100之间的随机整数,单击窗体中“右移”按钮,则左边列表框的10个数移动到右边的列表框中,并由大到小排列,此时“左移”按钮变为有效。单击“左移”按钮,右边列表框中的数又被移到左边的列表框中。单击“退出”按钮或按ESC键,可退出程序。窗体示意图如下。提示:l将列表框的Sorted属性设置为True,可使列表框中的项目从小到大排序。l使用“For循环变量=初值To终值Ne_t循环变量”可实现循环功能l可使用语句Randomize和函数Rnd()产生随机数。l移动列表框中的数,相当于将第一个列表框内容通过列表框的AddItem方法加入到第二个列表框,然后通过列表框的RemoveItem方法将第一个列表框内容删除。程序代码见附录。附:For循环语句的使用功能:l以指定次数来重复执行一组语句。语法:ForcXX=startToendStepstepstatementsE_itForstatementsNe_tcXX参数:lcXX必要参数。用做循环计数器的数值变量。这个变量不能是Boolean或数组元素。lstart必要参数,cXX的初值。lEnd必要参数,cXX的终值。lStep可选参数。cXX的步长。如果没有指定,则step的缺省值为1。lStatements可选参数。放在For和Ne_t之间的一条或多条语句,它们将被执行指定的次数。说明:lstep参数可以是正数或负数。step参数值决定循环的执行情况,如果step的值为正数或0,则当cXX=end时执行循环。l当所有循环中的语句都执行后,step的值会加到cXX中。此时,循环中的语句可能会再次执行(基于循环开始执行时同样的测试),也可能是退出循环并从Ne_t语句之后的语句继续执行。l循环中可以在任何位置放置任意个E_itFor语句,随时退出循环。E_itFor经常在条件判断之后使用,例如XXX,并将控制权转移到紧接在Ne_t之后的语句。l可以将一个XXX循环放置在另一个XXX循环中,组成嵌套循环。不过在每个循环中的counter要使用不同的变量名。下面的体系结构是正确的:ForI=1To10ForJ=1To10ForK=XXX注意:l应避免在循环中改变counter的值,否则将会使程序代码的阅读和调试变得更加困难。l如果省略Ne_t语句中的counter,就像counter存在时一样执行。附:Rnd()和Randomize()函数的使用功能:lRnd()函数返回一个包含随机数值的SinglelRandomize初始化随机数生成器语法:RndRandomize返回值:lRnd生成随机数序列中的下一个随机数。lRandomize用系统计时器返回的值作为新的种子值。说明:lRnd函数返回小于1但大于或等于0的值。l对最初给定的种子都会生成相同的数列,因为每一次调用Rnd函数都用数列中的前一个数作为下一个数的种子。l在调用Rnd之前,先使用无参数的Randomize语句初始化随机数生成器,该生成器具有根据系统计时器得到Rnd的种子的功能。l为了生成某个范围内的随机整数,可使用以下公式:Int(upperbound-lowerbound+1)_Rnd+lowerbound)这里,upperbound是随机数范围的上限,而lowerbound则是随机数范围的下限。注意:l若想得到重复的随机数序列,在使用Randomize之前直接调用Rnd。使用Randomize后,Rnd就能得到不重复的随机数序列。附:AddItem、RemoveItem方法的使用功能:lAddItem方法用于将项目添加到ListBo_或ComboBo_控件。lRemoveItem方法用以从ListBo_或ComboBo_控件中删除一项。语法:XXX,XXX参数:lobject必需的。一个对象表达式。lItem必需的。字符串表达式,它用来指定添加到该对象的项目。lInde_可选的。整数表达式,用来指定新项目或者要删除的项目在该对象中的位置。对于ListBo_或ComboBo_控件的首项,inde_为0。说明:l如果所给出的inde_值有效,则AddItem方法会将item放置在object中相应的位置。如果省略inde_,当Sorted属性设置为True时,AddItem方法会将item添加到恰当的排序位置,当Sorted属性设置为False时,AddItem方法会将item添加到列表的结尾。程序2:建立应用程序,窗体如下图所示,有一个简单组合框、三个命令按钮、一个文本框和一个标签。要求:l单击“添加”按钮可将输入的内容添加到组合框中l单击“删除”按钮可删除组合框中选定的项目l单击“统计人数”按钮,可将组合框中的项目总数输出到右边的文本框l单击“退出”或按ESC键退出程序程序代码见附录。想一想:l如果去掉“统计人数”按纽,让统计人数的工作在添加人员或删除人员时自动进行,应如何更改程序?l为了使用户界面更友好,在设计本程序时在哪些方面需要考虑的?
二、滚动条和定时器控件的使用程序3:编写程序,运行时的界面如下图所示。要求:无论是拖动滚动条上的滚动框,还是单击滚动箭头(数值递增或递减1)或滚动条(数值递增或递减10),均可以在相应的标签中反映当前数值,并动态计算出均值;单击“Reset”按钮,可将各滚动条上的滚动框复位。属性设置和程序代码见附录。想一想:l滚动条的Change事件和Scroll事件有什么区别?,本程序应该在什么事件中编程?程序4:利用定时器控件设计一个数字式时钟应用程序。提示:l可使用Time函数取得系统时间。属性设置和程序代码见附录。想一想:l如果要求程序整时报时,该如何修改程序。提示:l可使用下面程序段实现。IfSecond(Time)=10AndMinute(Time)=0ThenBeepEndIf选做实验1综合题1:依照“附件”中的计算器,自己编一个计算器。本实验要求:在计算器适当的位置显示系统时间(利用某个事件确定是否开启时间显示)。2综合题2:建立学生档案管理信息系统。本实验要求:设计“输入基本资料”窗体界面,在“性别”和“出生年月”输入中,使用组合框;编程,在“XX编码”和“电话号码”输入中,使用校验