首页 > 开发 > 综合 > 正文

VB中如何用List进行选择

2024-07-21 02:20:50
字体:
来源:转载
供稿:网友
  • 本文来源于网页设计爱好者web开发社区http://www.html.org.cn收集整理,欢迎访问。
  • 提供
    单item函数:
    cmddel_click
    cmdadd_click
    多item函数:
    cmddelall_click
    cmdaddall_click
    ---------------------------------------------------------------------------------------------------------------------
    'option explicit

    'author:nyb
    'time:2002-04-05
    '传入list1,list2,然后我们可以对list1,和list2中的item进行处理.
    '*all areas of code where modifications are necessary
    '*to integrate this object with a project are documented
    'with comments denoted by note:.
    '*to locate these comments,search for ‘*note::.
    '****************************************************************************************

    public sub cmddelall_click(list1 as listbox, list2 as listbox) '<<
    '*purpose: delete all list2.item
    '*accept: list1 没有用,list2处理对象
    for i = (list2.listcount - 1) to 0 step -1
    list2.removeitem i
    next i
    end sub
    public sub cmdadd2to1_click(list1 as listbox, list2 as listbox, list3 as listbox) '>>
    '*purpose: all item of list1 and list2 are inputed to list3
    '*accept: list1,list2
    for i = 0 to (list1.listcount - 1)
    list3.additem list1.list(i)
    next i
    for i = 0 to (list2.listcount - 1)
    list3.additem list2.list(i)
    next i
    end sub

    public sub cmdaddall_click(list1 as listbox, list2 as listbox, index as integer) '>>
    '*purpose: add all item of list1 inputed to list2.if item had been there, it won't be inputed
    '*accept: list1,list2
    if list2.listcount = 0 then
    for i = 0 to (list1.listcount - 1)
    list2.additem list1.list(i)
    next i
    else
    for i = 0 to (list1.listcount - 1)
    flag = checkselected(list1, list2, list1.list(i))
    if flag = "notbe" then list2.additem list1.list(i)
    next i
    end if
    end sub


    public sub cmddel_click(list1 as listbox, list2 as listbox) '<---
    '*purpose: the selected items of list2 are cleared
    '*accept: list1 没有用,list2处理对象
    dim i as integer
    if list2.selcount > 0 then
    for i = (list2.listcount - 1) to 0 step -1
    if list2.selected(i) = true then list2.removeitem i
    next i
    end if
    end sub

    public sub cmdadd_click(list1 as listbox, list2 as listbox, index as integer) '--->
    '*purpose: the selected items of list1 is inputed into list2
    ' list2为空,list2又可以多选,那么items selected in list1 are inputed to list2
    ' list2不为空,list2又可以多选,那么先检查item是否在list2中,如果在,那么就不添入list2
    ' list2设为单选,那么list2只添加list1中的的第一选中项
    '*accept: list1 选中的项目,list2为要加入的listbox
    dim i as integer
    dim flag as string

    if index > 0 then
    if list2.listcount >= 1 then
    if index = 2 then
    if list2.listcount >= 2 then
    if list1.multiselect = 0 then
    msgbox "只能选定两期对比!", vbexclamation, "操作提示!"
    exit sub
    end if
    end if
    end if
    end if
    end if

    if list2.listcount = 0 and list2.multiselect = 2 then
    for i = 0 to (list1.listcount - 1)
    if list1.selected(i) = true then list2.additem list1.list(i)
    next i
    elseif list2.listcount > 0 and list2.multiselect = 2 then
    for i = 0 to (list1.listcount - 1)
    flag = checkselected(list1, list2, list1.list(i))
    if list1.selected(i) = true and flag = "notbe" then list2.additem list1.list(i)
    next i
    elseif list2.multiselect = 0 then
    call cmddelall_click(list1, list2)
    for i = 0 to (list1.listcount - 1)
    if list1.selected(i) = true then list2.additem list1.list(i)
    next i
    end if
    call clearselect(list1)
    end sub

    private function checkselected(list1 as listbox, list2 as listbox, cityitem as string) as string
    '*purpose: '检查item是否已经被添加,已添加则checkselected = "be"
    '*accept: list1 选中的项目,list2为要加入的listbox,cityitem为list1 中一个被选中的项目
    '*feedback: checkselected , "be" 表示这个item在list2中存在
    for i = (list2.listcount - 1) to 0 step -1
    if cityitem = list2.list(i) then
    checkselected = "be"
    exit for
    else: checkselected = "notbe"
    end if
    next i
    end function

    private sub clearselect(list1)
    '*purpose: clear list1's selected
    '*accept: list1 ,the list box to clear selected
    for i = 0 to list1.listcount - 1
    if list1.selected(i) = true then
    list1.selected(i) = false
    end if
    next i
    end sub




    发表评论 共有条评论
    用户名: 密码:
    验证码: 匿名发表