请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册

QQ登录

只需一步,快速开始

senyugo

论坛元老

25

主题

78

帖子

1万

积分

论坛元老

积分
16281

活字格认证

senyugo
论坛元老   /  发表于:2014-2-21 11:03  /   查看:6923  /  回复:4
现在遇到这样一个问题

有两个画面,画面1和画面2(以下简称1和2)
2是1的子画面,通过1上的按钮模态调出,或者双击spread行调出
1上有一个spread,里面是明细行的数据,一览表示
2是一行数据的详细表示画面

调出2有两种方式 一个是选中1中spread中任意行,按更新按钮,进入2,然后2上面表示选中行
的数据,做一些更改更新数据库,2按返回,返回1的同时对1画面的spread刷新数据。

第二种方式是直接双击1中spread的某一行,直接进入2做同样的处理

两者走的代码基本是一样的,可是区别就在
第一种方式返回后spread上没有行被选中(spread中选中的数据背景设置是蓝色)
第二种方式返回后仍保留着调用之前选中的行,但是滚动条在最上面,选中的有可能是滚动条
滚下去的某一行。

现在需要的是第一种的效果

尝试了一下方法都不行,包括对spread的rowcount = 0
对双击时行 spread.ActiveSheet.rows[x].backcolor = white (颜色赋值不上去)

请问有什么解决办法

4 个回复

倒序浏览
roger.wang
社区贡献组   /  发表于:2014-2-21 17:33:00
沙发
回复 1楼senyugo的帖子

您描述的很详细,我再重述一下您想要的预期效果:
您想要:第一种方式返回后spread上没有行被选中
"选中1中spread中任意行,按更新按钮,进入2,然后2上面表示选中行
的数据,做一些更改更新数据库,2按返回,返回1的同时对1画面的spread刷新数据"

即目前是在2返回1后,1上原来Select的行不见了,而您想突出显示(如同显示2前的一样),是吗?

尝试过再重新选择x行吗?
如:
  1. FpSpread1.Sheets(0).AddSelection(x, 0, 1, ColumnCount)
复制代码


抱歉,我手头无合适的demo,只能用文字和您沟通了。
回复 使用道具 举报
senyugo
论坛元老   /  发表于:2014-2-22 16:09:00
板凳
回复 2楼roger.wang的帖子

我想要的效果是返回主画面1后,spread上没有选中的行,全部都没有背景色,滚动条在最上面。
现在两种方法的后台代码都一致,唯一的区别就在于一个是双击后弹出画面2的(第二种方式),
一个是通过先单击选中spread的某一行,然后按按钮弹出画面2的(第一种方式),
现在第一种方式返回后spread无选中行
      第二种方式返回后spread选中了之前的双击行,但是滚动条回初始位置了

FpSpread1.Sheets(0).AddSelection(x, 0, 1, ColumnCount)
不好意思,这种方式可能不是我想要的,有对应的解决办法吗?

比较疑惑的一点是几乎同样的代码现在出现了不一样的效果,
会不会是spread的单击双击事件引起的?
回复 使用道具 举报
senyugo
论坛元老   /  发表于:2014-2-24 10:03:00
地板
回复 2楼roger.wang的帖子

暂时找到了一个代替的方案,在给spread赋值的时候将选中色设置为白色,
然后在单击和双击的时候在设置为蓝色
回复 使用道具 举报
roger.wang
社区贡献组   /  发表于:2014-2-24 11:20:00
5#
回复 4楼senyugo的帖子

  向您学习了。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部