Foxtable(狐表)用户栏目专家坐堂 → 两个窗口绑定同一表时图片列的显示问题


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

主题:两个窗口绑定同一表时图片列的显示问题

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


加好友 发短信
等级:童狐 帖子:276 积分:2971 威望:0 精华:0 注册:2010/9/20 11:21:00
两个窗口绑定同一表时图片列的显示问题  发帖心情 Post By:2018/1/17 9:28:00 [只看该作者]

情况描述:

1、设计情况

系统中,有表B,其中有图片列“照片”。

设计两个窗口“主”、“副”,两个窗口样式基本一致:均有一个表控件,均绑定表B,并都作为副本表;同时有一个PictureViewer控件,绑定副本表的“照片”列。

主窗口中还有一Button,用于同时打开副窗口(即主窗口不关闭),同时主窗口副本表有一个PositionChanged事件,用于主窗口与副窗口副本表的位置同步:

If Forms("").Opened()

         Dim t As Table = Tables("_Table1")

         Dim p1 As  Integer = e.Table.Position   

         t.Position = p1

 下载信息  [文件大小:   下载次数: ]
点击浏览该文件:管理项目1.foxdb

End If

2、运行情况

单独建立项目,运行上述窗口一切正常(见附件)。但是在原系统中出现了奇怪现象:

1)分别单独运行主窗口、副窗口,两个窗口中的照片均能正常显示。

2)通过主窗口打开副窗口,两个窗口同时显示时,两个窗口中的照片均无法正常显示;

      即使删除主窗口中的图片控件,副窗口图片仍然不能正常显示。

3)如果把主窗口中的表改为主表,则一切又正常。


针对上述问题,排查了很多天,试了很多方法,仍然找不出问题所在,请问各位老师帮忙分析下,问题可能出在哪儿啊?


[此贴子已经被作者于2018/1/17 9:29:17编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/1/17 9:58:00 [只看该作者]

打开窗口代码,这样写

 

Forms("副").open()
If Forms("副").Opened()
    Dim t As Table = Tables("副_Table1")
    Dim p1 As  Integer = Tables("主_Table1").Position
    t.Position = p1
End If


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


加好友 发短信
等级:童狐 帖子:276 积分:2971 威望:0 精华:0 注册:2010/9/20 11:21:00
  发帖心情 Post By:2018/1/17 10:06:00 [只看该作者]

因为两个窗口是要随时保持同步的,不能光是在打开时同步。

刚才,将主表中的所有事件逐个删除试了下,发现问题竟然是DRAWCELL中多了一段代码造成的:
'If e.Table.name = "方案" Then
    '
'Else
    'DataTables("方案").SysStyles("Normal").BackColor = Color.Blue
    'DataTables("方案").SysStyles("Normal").ForeColor = Color.White
    'DataTables("方案").SysStyles("CurrentRow").BackColor = Color.Red   
    'DataTables("方案").SysStyles("CurrentRow").ForeColor = Color.Yellow
'End If

这段代码是为了设置窗口中副本有的配色,删除后,就正常了,这是为啥啊?

[此贴子已经被作者于2018/1/17 10:08:45编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/1/17 10:45:00 [只看该作者]

1、和你3楼的代码没有任何关系。

 

2、没必要在drawcell事件设置SysStyles。


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


加好友 发短信
等级:童狐 帖子:276 积分:2971 威望:0 精华:0 注册:2010/9/20 11:21:00
  发帖心情 Post By:2018/1/17 11:46:00 [只看该作者]

1、删掉了这段代码,问题确实解决了,我也感到很奇怪。
2、在窗口代码中,如何设置副本表的配色啊?(CurrentRow可以通过属性设置)

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/1/17 12:07:00 [只看该作者]

设置的代码写到窗口的 AfterLoad 事件

 回到顶部