[问答题] 完成下列问题:在考生文件夹下有一个工程文件sjt4.vbp。在窗体中“待选城市”下的List1列表框中有若干城市名称。程序运行时,选中List1中若干个列表项(如图6所示),单击“选中”按

20 查阅

[问答题] 完成下列问题:

在考生文件夹下有一个工程文件sjt4.vbp。在窗体中“待选城市”下的List1列表框中有若干城市名称。程序运行时,选中List1中若干个列表项(如图6所示),单击“选中”按钮则把选中的项目移到List2中,单击“显示”按钮,则在Text1文本框中显示这些选中的城市(如图7所示)。已经给出了所有控件和程序,但程序不完整。

要求:在程序中的横线处填写正确的内容,使其能正确运行,但不能修改程序中的其他部分和控件属性。最后用原来的文件名保存工程文件和窗体文件。

(题目提供的源程序]

Private Sub Command1_Click()

Dim k%

For k=List1.ListCount-1 To 0 (1)

If List1.Selected(k)=True Then

List2.AddItem (2)

List1.RemoveItem (3)

End If

Next k

End Sub

Private Sub Command2_Click()

Dim k%

Text1="已经选中的城市有:"

For k=0 To List2.ListCount-1 Step 1

Text1= (4) & "" & List2.List(k)&

参考答案:

[操作步骤] 第1步:打开本题工程文件。 第2步:分析并编写程序。 第3步:保存、调试、运行程序。 [1]step-1 [2]List1.List(k) [3]k [4]Text1或Text1.Text

列表框控件有两个重要的属性——Selected属性和List属性,二者都是数组,从0开始编号。Selected下标与List的下标一一对应,记录List数组中各个项目是否被选中。例如,若列表框List1中的第二个元素即List(1)被选中,则Selected(1)的值就为True;相反,若List(1)未被选中,则Selected(1)的值就为False。运行时,对Selected数组的下标从0~ListCount-1依次检测,可以判断出所有被选择的项目。由于题目中要对被选的项目进行移出操作,移出一个项目后,后续项目自动前移,该项目后的其他项目的下标发生改变,对被选项目的定位就出现错误。为了解决这个问题,程序在循环时下标从ListCount-1~0进行检测,此时For循环步长应为-1。当List1.Selected(k)值为真时,对应被选中的项目就是List1.List(k),应该把它添加到List2中,同时在List1中把下标为k的项目移去。为了在文本框中把List2中所有的项目连接起来,应该是取文本框中原有的值Text1.Text连接上List2的项目。

计算机考试