以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助]ComboBox的下拉列表值 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=16308) |
-- 作者:johnbu -- 发布时间:2012/2/9 9:29:00 -- [求助]ComboBox的下拉列表值 求教 我现在用动态的向一个窗口添加两个ComboBox,第一个取值表A的一列,然后第二个ComboBox根据第一个ComboBox的值来取表A的第二列值,我现在的做法是把它加到了窗口Afterload事件里,但现在我点第二个ComboBox时无法从第一个ComboBox取值并筛选表A的第二列值。或者能不能告诉我怎么来动态的设置ComboBox的Enter事件 |
-- 作者:狐狸爸爸 -- 发布时间:2012/2/9 9:55:00 -- 这里有例子:
http://www.foxtable.com/help/topics/1523.htm
|
-- 作者:johnbu -- 发布时间:2012/2/9 10:22:00 -- If e.Sender.Name.SubString(0,4) = "ComboBox2" Then \'如果名称符合
我是这样写的,但是不生效,还请指教 |
-- 作者:狐狸爸爸 -- 发布时间:2012/2/9 10:26:00 -- 在ComboxBox2的Enter事件中设置代码:
Dim cmb As WinForm.ComboBox = e.Sender Dim str As String = e.Form.Controls("ComboBox1").Value |
-- 作者:johnbu -- 发布时间:2012/2/9 10:33:00 -- 我的ComboBox2是一个动态添加的。在窗口中看不到,没法设置Enter事件 |
-- 作者:狐狸爸爸 -- 发布时间: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 |
-- 作者:johnbu -- 发布时间:2012/2/9 10:55:00 -- 执行了,但是还是没有取到值…… |
-- 作者:johnbu -- 发布时间:2012/2/9 11:02:00 -- If e.Sender.Name.SubString(0) = "ComboBox2" Then \'如果名称符合
找到原因了,是sustring的长度不够,把长度限制去掉就可以了,谢谢啦 |
-- 作者:狐狸爸爸 -- 发布时间:2012/2/9 11:21:00 -- 不会有的别的原因,要么条件有问题,要么根本就没有符合条件的数据,这样检查一下:
If e.Sender.Name.SubString(0,4) = "ComboBox2" Then \'如果名称符合 Dim cmbl As WinForm.ComboBox = e.Sender MessageBox.Show(Str) MessageBox.Show(DataTables("现有量").GetComboListString("批号", "物料 = \'" & str & "\'")) End If |