以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 求助-下拉组合框问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=190954) |
-- 作者:lovetoday -- 发布时间:2024/3/16 10:43:00 -- 求助-下拉组合框问题 老师,我在当“白塔销售档案”表是内部表时,在窗口的DropDownOpened事件中用如下代码,可以实现读取功能,但现在“白塔销售档案”表为存在SQL数据库中,且不带数据加载为内部表,那么要如何修改代码,才能实现相同功能? Dim items As String = "" For Each dr As DataRow In DataTables("白塔销售档案").datarows items += dr("销售档案_客户名称") & "|" Next Dim lsx As WinForm.ListBox = e.form.Controls("ListBox1") lsx.ComboList = items.Trim("|") e.Form.DropDownBox.Select() \'将输入焦点返回下拉列表框 |
-- 作者:有点蓝 -- 发布时间:2024/3/16 11:13:00 -- Dim lsx As WinForm.ListBox = e.form.Controls("ListBox1") lsx.ComboList = DataTables("白塔销售档案").SQLGetComboListString("销售档案_客户名称") |
-- 作者:lovetoday -- 发布时间:2024/3/16 11:47:00 -- 老师,感谢您,这个问题解决了,但是还是在相同的情况下,在下拉组合框时输入相关的信息后,在下拉的菜单中应该是显示与我输入信息like的,但是现在组合框不like了,请您帮看下,这代码哪里有问题 Dim drp As WinForm.DropDownBox = e.sender If drp.DroppedDown Then \'如果下拉窗口已经打开 Dim items As String = "" For Each dr As DataRow In DataTables("白塔销售档案").Select("销售档案_客户名称 like \'*" & e.sender.Text & "*\'") items += dr("销售档案_客户名称") & "|" Next Dim lsx As WinForm.ListBox = Forms(e.sender.DropFormName).Controls("ListBox1") lsx.ComboList = DataTables("白塔销售档案").SQLGetComboListString("销售档案_客户名称") End If |
-- 作者:有点蓝 -- 发布时间:2024/3/16 12:03:00 -- 2句代码就行了 Dim drp As WinForm.DropDownBox = e.sender If drp.DroppedDown Then \'如果下拉窗口已经打开 Dim lsx As WinForm.ListBox = Forms(e.sender.DropFormName).Controls("ListBox1") lsx.ComboList = DataTables("白塔销售档案").SQLGetComboListString("销售档案_客户名称","销售档案_客户名称 like \'*" & e.sender.Text & "*\'") End If |
-- 作者:lovetoday -- 发布时间:2024/3/16 13:19:00 -- 老师,这代码是写在下拉组合框的textchanged的事件里,改用您的代码后,下拉组合框直接就没有菜单了 |
-- 作者:有点蓝 -- 发布时间:2024/3/16 13:54:00 -- 放到下拉窗口的DropDownOpening事件 |
-- 作者:lovetoday -- 发布时间:2024/3/16 15:55:00 -- 老师,提示错误 |
-- 作者:有点蓝 -- 发布时间:2024/3/16 16:14:00 -- 只保留下面2句 Dim lsx As WinForm.ListBox = Forms(e.sender.DropFormName).Controls("ListBox1") lsx.ComboList = DataTables("白塔销售档案").SQLGetComboListString("销售档案_客户名称","销售档案_客户名称 like \'*" & e.Form.DropDownBox.value & "*\'") [此贴子已经被作者于2024/3/16 16:14:42编辑过]
|
-- 作者:lovetoday -- 发布时间:2024/3/16 16:19:00 -- 老师,这两句的第一句还是有sender ,提示的错误还是这个 |
-- 作者:有点蓝 -- 发布时间:2024/3/16 16:24:00 -- 不对呀,如果是要在控件一边输入,一般做筛选,类似这里的用法:http://www.foxtable.com/webhelp/topics/2466.htm。我测试在textchanged的事件使用4楼的代码没有任何问题 |