[Vsual Basic 程序代码] Private Sub CmdSelect_Cliek() For i = O To List2.ListCount - 1 If Listl.Text = List2.List(i) Then Exit Sub ’不要重复选择 Next i List2.Addltem (1) ’在List2中增添List1中所选的项 End Sub Private Sub CrndSelAll_Click() List2.Clear ’先删除List2中的已有项 For i = 0 To (2) ’对List1中所有各项做循环处理 List2.Addltem (3) ’将该项增添到 List2中 Next i End Sub Private Sub CmdDelete_Cliek() If List2.Listlndex >= O Then ’如果List2中有选中的项,List2.Removeltem (4) ’则删除所选的项 End If End Sub Private Sub CmdDelAll_Cliek() (5) End Sub
参考答案:
解析:Listl.Text (2) Listl.ListCount- (3) Listl.List(i) (4) List2.Lisfindex (5) List2.Clear
[分析]:试题五 本题涉及常用的列表框技术。 列表框常用的属性如下: ListCount 列表框内的数据项个数 List(o),List(1),... 列表框中从上到下各个数据项内容 Text 列表框中当前选中的数据项内容 Listlndex 列表框中当前选中的数据项的序号 列表框常用的方法如下: AddItem 列表框尾部增加一个数据项(参数给出数据项内容) RemoveItem 列表框中删除指定的数据项(参数给出待删的数据项序号) Clear 删除列表框中的全部数据项 本题中有两个列表框List1和List2,以及四个按钮。 按钮“>”的功能是将列表框List1中选中的一个数据项复制到列表框List2的尾部。 List1中当前所选的数据项内容是List1.Text。为避免重复,在复制前,应先判断它是否已经位于List2中。List2中,已有的数据项个数为List2.ListCount。各个数据项内容为: List2.List(O),List2.List(1),…,因此可以用循环语句来实现这种比较。如果发现重复,则退出该过程(不再复制)。将Listl.Text复制到List2的尾部,可以用如下语句实现: List2.Addltem Listl,Text 因此,(1)处应填写Listl.Text。 如果List1中没有选中任何数据项,则上述复制语句自动作为空语句执行。 注意,如果不修改列表框属性“MultiSelect”的默认值(O),用户在列表框中就不能同时选择多个数据项。 按钮“>>”的功能是将List1中的全部数据项复制到List2中去。为避免重复,在复制前,应全部删除List2中的所有数据项。将List1中的逐个数据项:List1.List(O), Listl.List(1),…,逐个复制到List2中,可以用循环语句来实现。List1中的数据项个数为List1.ListCount,因此,循环次数就是List1.ListCount。循环变量i从0开始执行循环,直到Listl.ListCount-1。因此(2)处应填写Listl.ListCount-1。循环体内执行数据项复制,将Listl.List(i)增添到List2的尾部: List2.Addltem Listl.List(i) 因此,(3)处应填写Listl.List(i)。 按钮“<”的功能是将List2中当前选中的数据项删除。由于删除数据项用Removeltem方法实现,其参数为选中数据项的序号值,所以,应该用语句: List2.Removeltem List2.Listlndex 来实现。因此(4)处应填写List2.Listlndex。 如果List2中没有选择任何数据项(此时List2.Listlndex==1),则上述语句会出现运行错误。为避免这种情况发生,可以将上述语句限制在List2.Listlndex>=O的条件下执行。 按钮“<<”的功能是删除List2中已经有的全部数据项,因此可以采用语句: List2.Clear 来实现。因此,(5)处应填写List2.Clear。