找回密码
 立即注册

QQ登录

只需一步,快速开始

liuyunan

注册会员

8

主题

41

帖子

161

积分

注册会员

积分
161

微信认证勋章

liuyunan
注册会员   /  发表于:2017-10-29 14:27  /   查看:6796  /  回复:13
画面中除了Spread还有一些其他控件,现在的现象是,当我点击其他控件时,spread内部的焦点仍然在,想达到的效果是:当我点击其他控件时,spread中的焦点消失。现在: image.png928305969.png ,等我点击完画面其他控件,spread中的焦点仍然在。想让这个选中的单元格消失。
有木有类似清除activecell的方法?

13 个回复

倒序浏览
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2017-10-30 09:21:59
沙发
您好,设置RetainSelectionBlock

            fpSpread1.RetainSelectionBlock = false;
回复 使用道具 举报
liuyunan
注册会员   /  发表于:2017-10-31 10:42:01
板凳
dexteryao 发表于 2017-10-30 09:21
您好,设置RetainSelectionBlock

            fpSpread1.RetainSelectionBlock = false;

好用好用,谢谢!我还有个问题,如您在图片中看到的,当spread单元格被focus的时候,会走editModeOn事件被置上蓝色,但是当它失去焦点的时候,颜色还在,我写了个EditModeOff事件里面把颜色置回来,但是它好像没走EditModeOff事件,这个应该怎么解决呢?
回复 使用道具 举报
liuyunan
注册会员   /  发表于:2017-10-31 10:44:04
地板
dexteryao 发表于 2017-10-30 09:21
您好,设置RetainSelectionBlock

            fpSpread1.RetainSelectionBlock = false;

不好意思我再补充一下,我用鼠标点击一下其他控件的时候颜色是正确的,但是当按tab使焦点移动的时候颜色就不对了。还请指点。
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2017-10-31 11:24:53
7#
您好,那个蓝色是您在editModeOn事件上设置的吗?
如果是事件里设置,那您可以用EnterCell 和 LeaveCell
回复 使用道具 举报
liuyunan
注册会员   /  发表于:2017-10-31 13:25:19
8#
dexteryao 发表于 2017-10-31 11:24
您好,那个蓝色是您在editModeOn事件上设置的吗?
如果是事件里设置,那您可以用EnterCell 和 LeaveCell

对的,我的蓝色设置在EditModeOn事件里面,然后LeaveCell事件里面有对颜色的控制,很奇怪的一点是,我按Enter另焦点移动的时候颜色效果是对的,但是按Tab另焦点移动的时候,最后一个格之后走到下一控件的时候,这个最后一个cell的蓝色就下不去了。
回复 使用道具 举报
liuyunan
注册会员   /  发表于:2017-10-31 13:55:59
9#
liuyunan 发表于 2017-10-31 13:25
对的,我的蓝色设置在EditModeOn事件里面,然后LeaveCell事件里面有对颜色的控制,很奇怪的一点是,我按E ...

我再补充一下,我刚刚调试的时候,发现前面所有cell按Tab的时候都会走LeaveCell事件,但是最后一个cell按下Tab的时候不走LeaveCell事件。
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2017-10-31 13:58:00
10#
我明白您的需求了,选中单元格时候高亮,不选的时候不要背景色。
使用如下代码

            fpSpread1.PaintActiveCellInSelection = true;
            fpSpread1.RetainSelectionBlock = false;
            fpSpread1.ActiveSheet.SelectionStyle = FarPoint.Win.Spread.SelectionStyles.SelectionColors;
            fpSpread1.ActiveSheet.SelectionBackColor = Color.Red;
回复 使用道具 举报
liuyunan
注册会员   /  发表于:2017-10-31 14:24:43
11#
dexteryao 发表于 2017-10-31 13:58
我明白您的需求了,选中单元格时候高亮,不选的时候不要背景色。
使用如下代码

请问这个属性与EditModeOn或者EditModeOff事件之间会有影响吗?我的画面里面有两个Spread,Tab和Enter按下时,控件焦点的顺序是spread1所有单元格遍历后来到spread2,继续遍历,现在有个问题就是,当走到spread1的最后一个单元格时,按下Tab,能看到焦点已经到了spread2的第一个cell,但是这个cell的颜色没置上,同时spread1中最后一个cell的颜色没有消除。我的EditModeOn或者EditModeOff中只负责给单元格置颜色没有其他事情。
回复 使用道具 举报
liuyunan
注册会员   /  发表于:2017-10-31 14:26:41
12#
dexteryao 发表于 2017-10-31 13:58
我明白您的需求了,选中单元格时候高亮,不选的时候不要背景色。
使用如下代码

fpSpread1.RetainSelectionBlock = false; 如果只改这一个属性,那么是我刚刚上面说的那种现象,但是后来把剩下三个属性都改了的话,好像Tab按下时单元格的顺序都不对了,所以在想这两者之间是不是有相互影响。
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部