Foxtable(狐表)用户栏目专家坐堂 → [求助]combobox的下拉高度变化再议!--已解决


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

主题:[求助]combobox的下拉高度变化再议!--已解决

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


加好友 发短信
等级:四尾狐 帖子:936 积分:7725 威望:0 精华:0 注册:2013/7/7 13:37:00
[求助]combobox的下拉高度变化再议!--已解决  发帖心情 Post By:2013/12/24 10:16:00 [只看该作者]

昨天发了一个帖子,combobox的下拉高度用代码设置  ,bin老师给了一个方法,在afterload里先给combobox赋值,TextChanged变化时就适应了.但应用中发现有时高度还是与项目内容不匹配。
于是我便又改变了在textchanged中的赋值方式,不在采用item.add()
而是采用 combolist的方法,这时下拉高度就完全正常了。
If e.Sender.text.Length= 1 Then
Dim comliststr As String
Dim drList As List(of DataRow) = DataTables("表A").Select("第一列 = '" & e.Sender.text & "'")
If drList.count > 0 Then
e.Sender.text = drList(0)("第二列")
e.Sender.SelectionStart=1
For Each dr As DataRow In drList
comliststr = comliststr & "|" & dr("第二列")
Next
End If
e.Sender.ComboList = comliststr.Trim("|")
e.Sender.OpenDropDown
End If


只是操作中还是报错,不知什么原因
以下是截图与示例,请bin老师再给解决下


此主题相关图片如下:360软件小助手截图20131224101413.jpg
按此在新窗口浏览图片
 下载信息  [文件大小:   下载次数: ]
点击浏览该文件:下拉列表textchanged.table


这 是 BIN老师的完美解决方法
If e.Sender.text.Length= 1 Then
Dim comliststr As String
Dim drList As List(of DataRow) = DataTables("表A").Select("第一列 = '" & e.Sender.text & "'")
If drList.count > 0 Then
'e.Sender.Items.Clear
e.Sender.text = drList(0)("第二列")
'e.Sender.SelectionStart=1
For Each dr As DataRow In drList
comliststr = comliststr & "|" & dr("第二列")
Next
e.Sender.ComboList = comliststr.Trim("|")
Else
e.Sender.Items.Clear  

End If
'comliststr = comliststr.Trim("|")
' e.Sender.Items.Add(dr("第二列"))
e.Sender.OpenDropDown
End If

[此贴子已经被作者于2013-12-24 10:44:09编辑过]

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/12/24 10:27:00 [只看该作者]

.
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:下拉列表textchanged.table


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


加好友 发短信
等级:四尾狐 帖子:936 积分:7725 威望:0 精华:0 注册:2013/7/7 13:37:00
  发帖心情 Post By:2013/12/24 10:42:00 [只看该作者]

完美解决,谢谢bin老师

 回到顶部