以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]窗口界面组合框如何用代码改变其内容? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=19550) |
||||||||
-- 作者:liguichuan -- 发布时间:2012/5/14 10:18:00 -- [求助]窗口界面组合框如何用代码改变其内容? 我想实现下列的功能:(见图)
需求: 1、“商品1级分类”的下拉列表在窗口加载时生成; 2、“商口2级分类”的下拉列表由“商品1级分类”的内容生成; 3、“商口3级分类”的下拉列表由“商品2级分类”的内容生成;
4、“商品1级分类”改变时,“商口2级分类”、“商口3级分类”内容清空重选; 5、“商口2级分类”改变时,“商口3级分类”内容清空重选。
方法一:不设置任何表事件,在窗口的组合框中TextChanged事件中写入代码。
商品1级分类对应的组合框中代码为: Dim c1 As WinForm.ComboBox = e.Form.Controls("ComboBox1") c2.ComboList = DataTables("商品分类表").GetComboListString("商品2级分类","[商品1级分类] = \'" & c1.Value & "\'") c2.Value = ""
商品2级分类对应的组合框中代码为: Dim c1 As WinForm.ComboBox = e.Form.Controls("ComboBox1") c3.ComboList = DataTables("商品分类表").GetComboListString("商品3级分类","[商品2级分类] = \'" & c2.Value & "\'") c3.value = "" 运行结果如下图所示,达不到要求的效果:
方法二:把方法一中标注为红色的三条语句去掉,并在表事件中的DataColChanged事件设置如下代码: Dim 列名 As String = e.DataCol.Name Case "商品2级分类" Case "商品3级分类"
可以实现效果。
各组合框所邦定的字段如下图所示:
问题是:
c2.Value = ""
这样的语句为什么不能改变组合框以及字段中的值?
附件如下: 未设置表事件:
设置了表事件:
[此贴子已经被作者于2012-5-14 10:19:27编辑过]
|
||||||||
-- 作者:狐狸爸爸 -- 发布时间:2012/5/14 10:22:00 -- 参考: http://www.foxtable.com/help/topics/2436.htm
|
||||||||
-- 作者:liguichuan -- 发布时间:2012/5/14 10:32:00 -- 把代码改成: Dim c1 As WinForm.ComboBox = e.Form.Controls("ComboBox1")
会报错:
此主题相关图片如下:报错.jpg 此主题相关图片如下:报错2.jpg |
||||||||
-- 作者:狐狸爸爸 -- 发布时间:2012/5/14 10:37:00 -- 看2楼。 |