Foxtable(狐表)用户栏目专家坐堂 → 关于CheckedListBox 追加列表项问题


  共有4383人关注过本帖树形打印复制链接

主题:关于CheckedListBox 追加列表项问题

帅哥哟,离线,有人找我吗?
wh420
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1107 积分:10586 威望:0 精华:0 注册:2014/2/19 16:32:00
关于CheckedListBox 追加列表项问题  发帖心情 Post By:2021/5/20 16:04:00 [只看该作者]

想把EXCEL文件的所有SHEET名称追加到CheckedListBox例表项中,但执行下面代码会死循环

Dim lb As WinForm.CheckedListBox = e.Form.Controls("CheckedListBox1")
Dim file As Object = e.Form.Controls("TextBox3").value
Dim App As New MSExcel.Application
app.DisplayAlerts=False '是否显示EXCEL警示
Dim Wb As MSExcel.WorkBook
Dim Ws As MSExcel.WorkSheet
Wb = App.WorkBooks.Open(file)
For k As Integer = 1 To wb.workSheets.Count '//多个sheet的处理
    Ws = Wb.WorkSheets(k)
    lb.ComboList  = Ws.name & vbcrlf & lb.ComboList
Next
app.quit()

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111393 积分:567029 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/5/20 16:07:00 [只看该作者]

For k As Integer = 1 To wb.workSheets.Count '//多个sheet的处理
    Ws = Wb.WorkSheets(k)
    lb.ComboList  = Ws.name & "|" & lb.ComboList
Next
app.quit()

 回到顶部
帅哥哟,离线,有人找我吗?
wh420
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1107 积分:10586 威望:0 精华:0 注册:2014/2/19 16:32:00
  发帖心情 Post By:2021/5/20 17:36:00 [只看该作者]

收到谢谢。

CheckedListBox根据条件来设置每个添加项的不同颜色,如何实现?

For k As Integer = 1 To wb.workSheets.Count '//多个sheet的处理

    Ws = Wb.WorkSheets(k)
  
    If Ws.Visible = -1 Then
        lb.ComboList  = Ws.name & "|" & lb.ComboList
        ‘该项为红色
        lb.CheckedIndices(1) = Color.red
    Else
       ’该项为黑色        
        lb.ComboList  = Ws.name & "|" & lb.ComboList
        lb.ForeColor =  Color.blue
    End If

Next


 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111393 积分:567029 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/5/20 20:12:00 [只看该作者]

设置不了

 回到顶部
帅哥哟,离线,有人找我吗?
wh420
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1107 积分:10586 威望:0 精华:0 注册:2014/2/19 16:32:00
  发帖心情 Post By:2021/5/21 13:55:00 [只看该作者]

那如果是If Ws.Visible = -1 Then “当前项设置为选中状态呢?这个能实现不?

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111393 积分:567029 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/5/21 14:09:00 [只看该作者]

dim str as string 
dim lst as new list(of integer)
For k As Integer = 1 To wb.workSheets.Count '//多个sheet的处理
    Ws = Wb.WorkSheets(k)
str = str & "|" & Ws.name 
    If Ws.Visible = -1 Then
lst.add(k-1)
    End If
Next
lb.ComboList  = str.trim("|")
for each i as integer = 0 to lst.count - 1
lb.SetItemChecked(lst(i), true)
next

 回到顶部
帅哥哟,离线,有人找我吗?
wh420
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1107 积分:10586 威望:0 精华:0 注册:2014/2/19 16:32:00
  发帖心情 Post By:2021/5/21 16:55:00 [只看该作者]

问题解决,谢谢老师。

 回到顶部