习题7与答案.docx
《习题7与答案.docx》由会员分享,可在线阅读,更多相关《习题7与答案.docx(16页珍藏版)》请在冰豆网上搜索。
习题7与答案
第七章列表框、组合框和滚动条
7-1组合框和列表框的主要区别是什么?
答:
列表框只能使用户从多个项目中选择一个或多个进行相应处理,而组合框不仅能从已有的项目中进行选择,还能输入列表中不包括的项目。
组合框实际上相当于将列表框和文本框的功能综合到一起,既可以像列表框一样让用户选择其中的项目,又能像文本框一样,由用户输入自己指定的内容。
7-2设计一个程序,运行时的窗体如图7.17所示。
窗体中包含两个列表框。
左侧列表框中列出若干城市的名称。
当算计某个城市名时,这个城市从左侧的列表框中消失,同时出现在右侧的列表框中。
其中,左侧列表框中的城市名是在程序开始运行时添加到列表框中的。
图7.17
程序代码:
PrivateSubCmdExit_Click()
End
EndSub
PrivateSubForm_Load()
List1.Clear
List2.Clear
List1.AddItem"北京"
List1.AddItem"上海"
List1.AddItem"天津"
List1.AddItem"重庆"
List1.AddItem"广东省"
List1.AddItem"河南省"
List1.AddItem"辽宁省"
List1.AddItem"陕西省"
EndSub
PrivateSubList1_DblClick()
SelectCaseList1.Text
Case"北京"
List2.AddItem"北京"
j=List1.ListIndex
Case"上海"
List2.AddItem"上海"
j=List1.ListIndex
Case"天津"
List2.AddItem"天津"
j=List1.ListIndex
Case"重庆"
List2.AddItem"重庆"
j=List1.ListIndex
Case"广东省"
List2.AddItem"广东省"
j=List1.ListIndex
Case"河北省"
List2.AddItem"河北省"
j=List1.ListIndex
Case"辽宁省"
List2.AddItem"辽宁省"
j=List1.ListIndex
Case"陕西省"
List2.AddItem"陕西省"
j=List1.ListIndex
EndSelect
List1.RemoveItemj
EndSub
PrivateSubList2_DblClick()
SelectCaseList2.Text
Case"北京"
j=List2.ListIndex
Case"上海"
j=List2.ListIndex
Case"天津"
j=List2.ListIndex
Case"重庆"
j=List2.ListIndex
Case"广东省"
j=List2.ListIndex
Case"河南省"
j=List2.ListIndex
Case"辽宁省"
j=List2.ListIndex
Case"陕西省"
j=List2.ListIndex
EndSelect
List2.RemoveItemj
EndSub
______________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________7-3修改例7.1的程序,将图7.2界面中显示航班信息的标签改为多行文本框,仍用于显示航班信息。
窗体如图7.18所示。
要求:
(1)程序运行时,在列表框中列出若干城市,不显示“返回”命令按钮,如图7.19所示;
(2)从列表框中选择一个城市名后,窗体左侧显示城市的列表框消失,这时窗体上只有右部文本框、标签和“返回”命令按钮(“结束”命令按钮被隐藏),用来显示到达此城市的航班的起飞时间和其他信息,如图7.20所示;
(3)单击“返回”按钮,恢复初始窗体的状态。
注意:
应将文本框中显示的航班信息清除。
图7.18
图7.19图7.20
程序代码:
PrivateSubForm_Load()
lstplace.AddItem"上海"
lstplace.AddItem"大连"
lstplace.AddItem"广州"
lstplace.AddItem"深圳"
lstplace.AddItem"重庆"
lstplace.AddItem"厦门"
lstplace.AddItem"新疆"
lstplace.AddItem"拉萨"
Text1.Text=""
cmdReturn.Visible=False
EndSub
PrivateSublstplace_Click()
ch$="北京--"
SelectCaselstplace.ListIndex
Case0
ch1$="星期五15:
00起飞"
Text1.Text=ch$+lstplace.Text+ch1$
Case1
ch1$="星期一09:
00起飞"
Text1.Text=ch$+lstplace.Text+ch1$
Case2
ch1$="星期六22:
20起飞"
Text1.Text=ch$+lstplace.Text+ch1$
Case3
ch1$="星期三11:
00起飞"
Text1.Text=ch$+lstplace.Text+ch1$
Case4
ch1$="星期四17:
00起飞"
Text1.Text=ch$+lstplace.Text+ch1$
Case5
ch1$="星期二23:
15起飞"
Text1.Text=ch$+lstplace.Text+ch1$
Case6
ch1$="星期日08:
30起飞"
Text1.Text=ch$+lstplace.Text+ch1$
Case7
ch1$="星期三11:
40起飞"
Text1.Text=ch$+lstplace.Text+ch1$
EndSelect
lstplace.Visible=False
cmdexit.Visible=False
Label1.Visible=False
cmdReturn.Visible=True
EndSub
_
_7-4建立如图7.21所示的界面。
水平和垂直滚动条分别表示速度和时间。
设速度的变化范围0~100km/h,时间的变化范围是0~50h。
当速度或时间发生变化时,分别在水平和垂直滚动条边的标签中显示当时的速度和时间值,并在“距离(km)”下的标签中显示相对于该速度和时间的距离值。
图7.21
程序代码:
PrivateSubCmdExit_Click()
End
EndSub
PrivateSubHScroll1_Change()
i=HScroll1.Value
j=VScroll1.Value
Text2.Text=Str(i)
Ifi<>0Andj<>0Then
Text3.Text=Str(i*j)
EndIf
EndSub
PrivateSubVScroll1_Change()
i=HScroll1.Value
j=VScroll1.Value
Text1.Text=Str(j)
Ifi<>0Andj<>0Then
Text3.Text=Str(i*j)
EndIf
EndSub
7-5设计一个程序,窗体外观如图7.22所示,在窗体上设置两个组合框,一个是下拉式组合框(Style=0,位置在窗体左上角),用来显示家电产品大类;另一个是简单组合框(Style=1,在窗体中部),用来显示某一大类产品的不同牌号产品。
设置三个标签,标签2和标签3用来为组合框1和组合框2作标注。
标签1用来在程序运行时显示用户所选中的产品信息。
在运行开始时标签1和“返回”按钮被设置为“不可见”。
在“显示产品信息”按钮被单击时,将其设置为“可见”,并在其中显示有关信息。
程序运行时,窗体外观如图7.23所示。
“返回”和“退出”两个命令按钮分别在不同的条件下显示,即程序运行时,这两个按钮不会同时显示在屏幕上。
当选择了某家电产品类别及某类产品时,单击“显示产品信息”按钮,显示所选产品的详细信息,如图7.24所示。
单击“返回”按钮,返回到初始窗口。
图7.22
图7.23图7.24
程序代码:
PrivateSubcmdExit_Click()
End
EndSub
PrivateSubcmdReturn_Click()
Combo1.Visible=True
Combo2.Visible=True
Label2.Visible=True
Label3.Visible=True
cmdShow.Visible=True
cmdExit.Visible=True
cmdReturn.Visible=False
Label1.Visible=False
EndSub
PrivateSubcmdShow_Click()
Combo1.Visible=False
Combo2.Visible=False
Label2.Visible=False
Label3.Visible=False
cmdShow.Visible=False
cmdExit.Visible=False
Label1.Visible=True
cmdReturn.Visible=True
Label1.BackStyle=1
IfCombo1.Text="电视机"Thentelevision
IfCombo1.Text="录像机"Thenvideocorder
EndSub
PrivateSubCombo1_Click()
SelectCaseCombo1.Text
Case"电视机"
Combo2.Clear
Combo2.AddItem"长虹彩电"
Combo2.AddItem"东芝彩电"
Combo2.AddItem"夏普彩电"
Combo2.AddItem"彩虹彩电"
Case"录像机"
Combo2.Clear
Combo2.AddItem"松下录像机"
Combo2.AddItem"东芝录像机"
Combo2.AddItem"夏普录像机"
EndSelect
EndSub
PrivateSubForm_Load()
Label1.Visible=False
Combo1.AddItem"电视机"
Combo1.AddItem"录像机"
cmdReturn.Visible=False
EndSub
PrivateSubtelevision()
SelectCaseCombo2.Text
Case"长虹彩电"
Label1.Caption="电子产品信息产品类别:
"+Combo1.Text+"产品名称:
"+
Combo2.Text+"21寸1800元"
Case"东芝彩电"
Label1.Caption="电子产品信息产品类别:
"+Combo1.Text+"产品名称:
"+
Combo2.Text+"25寸4600元"
Case"夏普彩电"
Label1.Caption="电子产品信息产品类别:
"+Combo1.Text+"产品名称:
"+
Combo2.Text+"21寸2300元"
Case"彩虹彩电"
Label1.Caption="电子产品信息产品类别:
"+Combo1.Text+"产品名称:
"+
Combo2.Text+"21寸1500元"
EndSelect
EndSub
PrivateSubvideocorder()
SelectCaseCombo2.Text
Case"松下录像机"
Label1.Caption="电子产品信息产品类别:
"+Combo1.Text+"产品名称:
"+
Combo2.Text+"1800元"
Case"东芝录像机"
Label1.Caption="电子产品信息产品类别:
"+Combo1.Text+"产品名称:
"+
Combo2.Text+"4600元"
Case"夏普录像机"
Label1.Caption="电子产品信息产品类别:
"+Combo1.Text+"产品名称:
"+
Combo2.Text+"2300元"
EndSelect
EndSub
_
7-6修改例7.3。
程序运行时,从一个顺序文件中读取城市名,并添加到组合框中。
退出程序时,将组合框中当前的项目保存到顺序文件中。
程序界面:
程序代码:
PrivateSubCboCity_Click()
LblCity.Caption=CboCity.Text
EndSub
PrivateSubCmdAdd_Click()
flag=0
IfCboCity.Text<>""Then
Fori=0ToCboCity.ListCount
IfCboCity.Text=CboCity.List(i)Then
flag=1
EndIf
Next
Ifflag=0Then
CboCity.AddItem(CboCity.Text)
EndIf
Else
MsgBox"请输入城市名称!
"
EndIf
EndSub
PrivateSubCmdDelete_Click()
IfCboCity.ListIndex=-1Then
MsgBox"请选择要删除的项目!
"
Else
CboCity.RemoveItemCboCity.ListIndex
EndIf
EndSub
PrivateSubCmdExit_Click()
CallForm_QueryUnload(0,0)
End
EndSub
PrivateSubCmdsave_Click()
flag=0
IfCboCity.Text<>""Then
Fori=0ToCboCity.ListCount
IfCboCity.Text=CboCity.List(i)Then
flag=1
EndIf
Next
Ifflag=0Then
CboCity.AddItemCboCity.Text
Open"E:
\惠丽峰07年精品课\惠丽峰_VB课件\第7章\课后习题\Lx7_6.txt"ForAppendAs#1
Print#1,CboCity.Text
Close#1
EndIf
Else
MsgBox"请输入城市名称!
"
EndIf
EndSub
PrivateSubForm_Load()
DimsAsString
Open"E:
\惠丽峰07年精品课\惠丽峰_VB课件\第7章\课后习题\Lx7_6.txt"ForInputAs#1
DoWhileNotEOF
(1)
LineInput#1,s
CboCity.AddItems
Loop
Close#1
EndSub
PrivateSubForm_QueryUnload(CancelAsInteger,UnloadModeAsInteger)
Open"E:
\惠丽峰07年精品课\惠丽峰_VB课件\第7章\课后习题\Lx7_6.txt"ForOutputAs#1
Fori=0ToCboCity.ListCount-1
Print#1,CboCity.List(i)
Nexti
Close#1
EndSub__