Foxtable(狐表)用户栏目专家坐堂 → checklsitbox问题


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

主题:checklsitbox问题

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


加好友 发短信
等级:狐精 帖子:3360 积分:24780 威望:0 精华:0 注册:2012/3/26 21:47:00
checklsitbox问题  发帖心情 Post By:2016/4/26 8:42:00 [只看该作者]

Dim s As String
Dim ckl As WinForm.CheckedListBox = e.Form.Controls("cl")
Dim k As Integer
For i As Integer = 0 To ckl.Items.count - 1 '获取已经勾选的项目
    If ckl.GetItemChecked(i) Then
       
        s=  s & ckl.Items(i)  & "|" & ckl.Items(i).length*27 & "|"
    End If
Next

If s<>"" Then
    e.Form.Controls("txt").value=s.SubString(0,s.length-1)
Else
    e.Form.Controls("txt").value=s
End If

 

 

我想实现一个和系统自带的选择列的那个类似的功能  代码如上  但是发现我在取消某个勾选项目后 顺序就乱掉了


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/4/26 9:19:00 [只看该作者]

乱掉指什么?我这样测试没问题

 

Dim s As String
Dim ckl As WinForm.CheckedListBox = e.Sender
Dim k As Integer
For i As Integer = 0 To ckl.Items.count - 1 '获取已经勾选的项目
    If e.Index = i Then
        If e.Checked = True Then
            s=  s & ckl.Items(i)  & "|" & ckl.Items(i).length*27 & "|"
           
        End If
    Else
        If ckl.GetItemChecked(i) Then
           
            s=  s & ckl.Items(i)  & "|" & ckl.Items(i).length*27 & "|"
        End If
    End If
Next

If s<>"" Then
    e.Form.Controls("textbox1").value=s.SubString(0,s.length-1)
Else
    e.Form.Controls("textbox1").value=s
End If


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


加好友 发短信
等级:狐精 帖子:3360 积分:24780 威望:0 精华:0 注册:2012/3/26 21:47:00
  发帖心情 Post By:2016/4/26 9:25:00 [只看该作者]

已经通过其他方式搞定  这个代码没办法记录点击的顺序 他默认按照从小到大来排  所以如果先点击大号再点击小号 就会出现顺序混乱 换成了下面这个代码就好了 在itemcheck事件中

 

Dim s As String
Dim ckl As WinForm.CheckedListBox = e.Form.Controls("cl")
Dim k As Integer
If e.Checked Then
    vars("选择项目")=vars("选择项目") & ckl.SelectedValue & "|" & ckl.SelectedValue.length*27 & "|"
Else
    vars("选择项目")=vars("选择项目").replace(ckl.Items(e.Index) & "|" & ckl.SelectedValue.length*27 & "|","")
End If

If vars("选择项目")<>"" Then
e.Form.Controls("txt").value=vars("选择项目").SubString(0,vars("选择项目").length-1)
Else
e.Form.Controls("txt").value=vars("选择项目")
End If


 回到顶部