Foxtable(狐表)用户栏目专家坐堂 → [求助]窗口界面组合框如何用代码改变其内容?


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

主题:[求助]窗口界面组合框如何用代码改变其内容?

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


加好友 发短信
等级:小狐 帖子:362 积分:3196 威望:0 精华:1 注册:2011/4/20 1:40:00
[求助]窗口界面组合框如何用代码改变其内容?  发帖心情 Post By:2012/5/14 10:18:00 [只看该作者]

我想实现下列的功能:(见图)


此主题相关图片如下:设表事件操作过程.gif
按此在新窗口浏览图片

 

需求:

     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")
Dim c2 As WinForm.ComboBox = e.Form.Controls("ComboBox2")
Dim c3 As WinForm.ComboBox = e.Form.Controls("ComboBox3")

c2.ComboList = DataTables("商品分类表").GetComboListString("商品2级分类","[商品1级分类] = '" & c1.Value & "'")

c2.Value = ""
c3.value = ""

 

商品2级分类对应的组合框中代码为:

Dim c1 As WinForm.ComboBox = e.Form.Controls("ComboBox1")
Dim c2 As WinForm.ComboBox = e.Form.Controls("ComboBox2")
Dim c3 As WinForm.ComboBox = e.Form.Controls("ComboBox3")

c3.ComboList = DataTables("商品分类表").GetComboListString("商品3级分类","[商品2级分类] = '" & c2.Value & "'")

c3.value = ""

 

运行结果如下图所示,达不到要求的效果:


此主题相关图片如下:未设表事件操作过程.gif
按此在新窗口浏览图片

 

方法二:把方法一中标注为红色的三条语句去掉,并在表事件中的DataColChanged事件设置如下代码:

Dim 列名 As String = e.DataCol.Name
Select Case 列名
Case "商品1级分类"
e.DataRow("商品2级分类") = ""
e.DataRow("商品3级分类") = ""

Case "商品2级分类"
e.DataRow("商品3级分类") = ""

Case "商品3级分类"


End Select

 

可以实现效果。

 

 

各组合框所邦定的字段如下图所示:


此主题相关图片如下:未设置表事件1.jpg
按此在新窗口浏览图片

 

 

问题是:

     

c2.Value = ""
c3.value = ""

 

这样的语句为什么不能改变组合框以及字段中的值?

 

 附件如下:

未设置表事件:
 下载信息  [文件大小:   下载次数: ]
点击浏览该文件:下拉选择与清空内容(未设表事件).table

设置了表事件:
 下载信息  [文件大小:   下载次数: ]
点击浏览该文件:下拉选择与清空内容(设表事件).table

[此贴子已经被作者于2012-5-14 10:19:27编辑过]

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2012/5/14 10:22:00 [只看该作者]


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


加好友 发短信
等级:小狐 帖子:362 积分:3196 威望:0 精华:1 注册:2011/4/20 1:40:00
  发帖心情 Post By:2012/5/14 10:32:00 [只看该作者]

把代码改成:

Dim c1 As WinForm.ComboBox = e.Form.Controls("ComboBox1")
Dim c2 As WinForm.ComboBox = e.Form.Controls("ComboBox2")
Dim c3 As WinForm.ComboBox = e.Form.Controls("ComboBox3")

c2.ComboList = DataTables("商品分类表").GetComboListString("商品2级分类","[商品1级分类] = '" & c1.Value & "'")
c2.Value = ""
c2.WriteValue()
c3.value = ""
c3.WriteValue()

 

会报错:

 


图片点击可在新窗口打开查看此主题相关图片如下:报错.jpg
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:报错2.jpg
图片点击可在新窗口打开查看

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2012/5/14 10:37:00 [只看该作者]

看2楼。

 回到顶部