窗体如图1所示。要求程序运行时,在文本框Text1中输入一个姓氏,单击"删除"按钮(名称为Command1),则可删除列表框List1中所有该姓氏的项目。若编写以下程序来实现此功能:
Private Sub Command1_Click()
Dim n%,k%
n=Len(Text1.Text)
For k=0 To List1.ListCount-1
If Left(List1.List(k),n)=Text1.Text Then
List1.RemoveItem k
End If
Next k
End Sub
在调试时发现,如输入"陈",可以正确删除所有姓"陈"的项目,但输入"刘",则只删除了"刘邦"、"刘备"2项,结果如图2所示。这说明程序不能适应所有情况,需要修改。正确的修改方案是把For k=0 To List1.ListCount-1改为______。
A) For k=0 To List1.ListCount
B) For k=1 To List1.ListCount
C) For k=1 To List1.ListCount-1
D) For k=List1.ListCount-1 To 0 Step-1
参考答案:D
解析: 错误原因:每一次删除列表框满足项,列表框的项目数目就会相应地减少,所以就出现了漏删内容,如果把循环变量k改成从List1.ListCout-1到0,从最后一个项目往第一个项目查找,满足条件就删除该项目,从而不会出现遗漏现象,所以正确答案为D) 。