以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]picturebox关联列显示问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=75093) |
-- 作者:13865161910 -- 发布时间:2015/9/26 17:07:00 -- [求助]picturebox关联列显示问题 1、现有一张表“A”和表“B”,两张表通过表中的[ZL]列进行关联,生成了新表“C” 2、创建窗口,建立表窗口绑定表“A”,创建记录窗口绑定表“C”的[ZL]列 3、当选择A表的某一行是,记录窗口同时显示C表的相关[ZL]列等信息 4、创建控件picturebox,关联表“C”的[ZL]列,并以最顶端方式放置在记录窗口控件的上面,大小与记录窗口相同 需求: 当选择表“A”的某一行是,同时记录窗口中正常显示绑定列[ZL]的信息 如此信息的内容为空,则picturebox控件显示,并getimage=图1.png,图片来源于项目image文件夹,否则隐藏图片控件不显示图片,正常显示记录窗口及内容 测试: 在表“C”的表事件currendchanged事件中写入如下代码 Dim r As Row = Tables("C").Current If Forms("窗口").Opened Then Dim pbx As WinForm.PictureBox = Forms("窗口").Controls("picturebox1") If r IsNot Nothing Then If r("ZL") = "开发中" Then pbx.Image = getimage("图1.png") \'显示图片 e.Form.Controls("picturebox1").Visible = True Else pbx.Image = Nothing \'不显示图片 e.Form.Controls("picturebox1").Visible = False End If Else pbx.Image = Nothing \'不显示图片 e.Form.Controls("picturebox1").Visible = False End If End If 测试不成功,后将代码移至PositionChanged (选择不同行后执行),问题依旧 请教改如何修改实现? [此贴子已经被作者于2015/9/28 10:17:21编辑过]
|
-- 作者:狐狸爸爸 -- 发布时间:2015/9/28 8:39:00 -- 换个思路,参考这个事件: http://www.foxtable.com/help/topics/2514.htm
|
-- 作者:13865161910 -- 发布时间:2015/9/28 10:31:00 -- 回复:(狐狸爸爸) 换个思路,参考这个事件:... 首先感谢狐爸百忙之中的解答,之前已经看过帮助中关于这个显示的介绍,但是测试效果还是不行 我在控件中重新写了代码,不知道这么写是否合理,请参考 Dim pbx As WinForm.PictureBox = e.Sender Dim r As Row = Tables("C").Current If r("ZL") = "" Then e.Form.Controls("前片开发").Visible = True e.File = "Development.png" \'显示图片 Else e.Form.Controls("前片开发").Visible = False e.File = "" \'不显示图片 End If 如果此行的ZL列值为空,则显示该控件,并加载图片,反之,隐藏控件不加载图片。不过这有个问题,这个buforegetimage的事件主要作用于显示图片文件之前执行,那如何判定我当前选中的表A的某一行所关联的表C中显示的数据呢?可能还是没弄明白原理,抱歉
|
-- 作者:大红袍 -- 发布时间:2015/9/28 10:58:00 -- 上传例子说明问题。 |
-- 作者:13865161910 -- 发布时间:2015/9/28 12:08:00 -- 回复:(大红袍)上传例子说明问题。 例子使用的是外部数据源,且表太多,有内部资料,不太方便上传,其实要实现的效果已经说明了,只是不知道该如何实现而已! |
-- 作者:大红袍 -- 发布时间:2015/9/28 12:18:00 -- 点击表A的时候,定位一下表C
http://www.foxtable.com/help/topics/0553.htm
|
-- 作者:13865161910 -- 发布时间:2015/9/28 13:56:00 -- 回复:(大红袍)点击表A的时候,定位一下表C ... 是不是出现BUG了还是怎么回事?还是机器码变更了?中途换过一次显卡,但是未提示需要重新激活 我在picturebox 的beforegetimage 中代码,然后预览窗口就会弹出如下提示:
|
-- 作者:大红袍 -- 发布时间:2015/9/28 14:07:00 -- 改一下名字看看,在不行,
跟客服核对一下激活码是否正确。 |
-- 作者:狐狸爸爸 -- 发布时间:2015/9/28 14:08:00 -- 以下是引用13865161910在2015/9/28 10:31:00的发言: 首先感谢狐爸百忙之中的解答,之前已经看过帮助中关于这个显示的介绍,但是测试效果还是不行 我在控件中重新写了代码,不知道这么写是否合理,请参考 如果此行的ZL列值为空,则显示该控件,并加载图片,反之,隐藏控件不加载图片。不过这有个问题,这个buforegetimage的事件主要作用于显示图片文件之前执行,那如何判定我当前选中的表A的某一行所关联的表C中显示的数据呢?可能还是没弄明白原理,抱歉 http://www.foxtable.com/help/topics/0431.htm http://www.foxtable.com/help/topics/0432.htm http://www.foxtable.com/help/topics/2649.htm 例如获取父表当前行对应子表的全部数据, Dim dr As List(of Datarow) = Table("父表").Current.DataRow.GetChildRows("子表")
|
-- 作者:13865161910 -- 发布时间:2015/9/28 14:36:00 -- 回复:(大红袍)改一下名字看看,在不行, ... 删除控件,重新建立控件,问题解决。。。。这算BUG么,问了客服,竟然不回复,直接让我评价 红袍大大,刚刚的问题还是没有解决,能鉴于我提供的信息给予提供个代码范例么? 主要是选择表A某一行,判断关联的表C(临时表)中的[ZL]列为空值的时候,显示图片控件,并加载图片 如果为图2的空值,则显示下图 |