以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]帮助文件自定义界面四中自动填充的疑问 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=24676) |
-- 作者:sunbrain -- 发布时间:2012/10/20 1:12:00 -- [求助]帮助文件自定义界面四中自动填充的疑问 在学习复杂的窗口制作,有一段不是很懂 请教大家:
P1312:
5、将窗口的DropDownClosed(见 [标题编号])事件代码设置为: If e.Selected Then \'如果选择了值 这样关闭下拉窗口后,可以自动将选定客户的客户ID输入到下拉列表框中。
红色部分:可是我希望的是把相关的内容也填入,怎么办呢? 于是,我想到在所属的表中datachanged中设置:
If e.DataCol.Name = "客户ID" Then \'在产品表找出该产品 Dim dr As DataRow dr = DataTables("客户明细表").Find("客户ID = " & "\'" & e.DataRow("客户ID") & "\'" ) If dr IsNot Nothing \'如果找到, 则设置各列内容 e.DataRow("客户名称")= dr("客户名称")
End If End If
结果,问题这样的: 没有实现索要的内容,结果除了莫名其貌的问题,见图:
输入的数字是哪个,出来的窗口中第一行的编号就变成了那个数字,而且还自动保存了还
请大家帮助,谢谢
此主题相关图片如下:rt3.gif |
-- 作者:lin_hailun -- 发布时间:2012/10/20 9:08:00 -- 关系复杂,关联复杂,说不清,道不明。 如果各个控件有绑定字段,直接把表的Position定位到那一行,信息就自动更新了。 如果没有绑定字段,就在dropdownclosed中写代码,更新各个控件的值。 |
-- 作者:狐狸爸爸 -- 发布时间:2012/10/20 9:27:00 -- 离开输入框,输入的内容才会写入到表,才会触发DataColChanged事件。 所以你下拉选择后要离开输入框,其他列的内容才会自动输入。
你要即时生效,加一行:
If e.Selected Then \'如果选择了值
|
-- 作者:sunbrain -- 发布时间:2012/10/20 9:48:00 -- 感谢楼上二位! 问题已经找到,窗口的事件和表的datachanged事件是重复执行的,有冲突,所以才导致这样的问题。 解决方式:直接去掉datachanged事件,在窗口设置 |