Foxtable(狐表)用户栏目专家坐堂 → [求助]ComboBox的下拉列表值


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

主题:[求助]ComboBox的下拉列表值

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


加好友 发短信
等级:婴狐 帖子:53 积分:435 威望:0 精华:0 注册:2012/2/1 14:05:00
[求助]ComboBox的下拉列表值  发帖心情 Post By:2012/2/9 9:29:00 [只看该作者]

求教

     我现在用动态的向一个窗口添加两个ComboBox,第一个取值表A的一列,然后第二个ComboBox根据第一个ComboBox的值来取表A的第二列值,我现在的做法是把它加到了窗口Afterload事件里,但现在我点第二个ComboBox时无法从第一个ComboBox取值并筛选表A的第二列值。或者能不能告诉我怎么来动态的设置ComboBox的Enter事件


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


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


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


加好友 发短信
等级:婴狐 帖子:53 积分:435 威望:0 精华:0 注册:2012/2/1 14:05:00
  发帖心情 Post By:2012/2/9 10:22:00 [只看该作者]

If e.Sender.Name.SubString(0,4) = "ComboBox2" Then '如果名称符合
    Dim cmbl As WinForm.ComboBox = e.Sender
    Dim str As String = e.Form.Controls("ComboBox1").Value
    cmbl.ComboList = DataTables("现有量").GetComboListString("批号", "物料 = '" & str & "'")
End If

 

我是这样写的,但是不生效,还请指教


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


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

在ComboxBox2的Enter事件中设置代码:

 

Dim cmb As WinForm.ComboBox = e.Sender

Dim str As String = e.Form.Controls("ComboBox1").Value
cmb.ComboList = DataTables("现有量").GetComboListString("批号", "物料 = '" & str & "'")


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


加好友 发短信
等级:婴狐 帖子:53 积分:435 威望:0 精华:0 注册:2012/2/1 14:05:00
  发帖心情 Post By:2012/2/9 10:33:00 [只看该作者]

我的ComboBox2是一个动态添加的。在窗口中看不到,没法设置Enter事件

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


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

看看代码到底执行了没有:

 

MessageBox.show(e.Sender.Name)

If e.Sender.Name.SubString(0,4) = "ComboBox2" Then '如果名称符合

    MessageBox.show(e.Sender.Name)

    Dim cmbl As WinForm.ComboBox = e.Sender
    Dim str As String = e.Form.Controls("ComboBox1").Value
    cmbl.ComboList = DataTables("现有量").GetComboListString("批号", "物料 = '" & str & "'")
End If


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


加好友 发短信
等级:婴狐 帖子:53 积分:435 威望:0 精华:0 注册:2012/2/1 14:05:00
  发帖心情 Post By:2012/2/9 10:55:00 [只看该作者]

执行了,但是还是没有取到值……

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


加好友 发短信
等级:婴狐 帖子:53 积分:435 威望:0 精华:0 注册:2012/2/1 14:05:00
  发帖心情 Post By:2012/2/9 11:02:00 [只看该作者]

If e.Sender.Name.SubString(0) = "ComboBox2" Then '如果名称符合
    Dim cmbl As WinForm.ComboBox = e.Sender
    Dim str As String = e.Form.Controls("ComboBox1").Value
    cmbl.ComboList = DataTables("现有量").GetComboListString("批号", "物料 = '" & str & "'")
End If

 

找到原因了,是sustring的长度不够,把长度限制去掉就可以了,谢谢啦


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


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

不会有的别的原因,要么条件有问题,要么根本就没有符合条件的数据,这样检查一下:

 

If e.Sender.Name.SubString(0,4) = "ComboBox2" Then '如果名称符合

    Dim cmbl As WinForm.ComboBox = e.Sender
    Dim str As String = e.Form.Controls("ComboBox1").Value
    cmbl.ComboList = DataTables("现有量").GetComboListString("批号", "物料 = '" & str & "'")

    MessageBox.Show(Str)
    MessageBox.Show("物料 = '" & str & "'")

    MessageBox.Show(DataTables("现有量").GetComboListString("批号", "物料 = '" & str & "'"))

End If


 回到顶部