找回密码
 立即注册

QQ登录

只需一步,快速开始

liuyunan

注册会员

8

主题

41

帖子

161

积分

注册会员

积分
161

微信认证勋章

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

13 个回复

正序浏览
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2017-10-31 17:34:51
16#
您看下您tab键设置的是什么action ,如果有问题,您提供下您的Demo。这样我好去重现处理。
不然猜起来并不是很准确

            var inputmap = fpSpread1.GetInputMap(FarPoint.Win.Spread.InputMapMode.WhenFocused);
            inputmap.Put(new FarPoint.Win.Spread.Keystroke(Keys.Tab, Keys.None), FarPoint.Win.Spread.SpreadActions.MoveToNextCellThenControl);
回复 使用道具 举报
liuyunan
注册会员   /  发表于:2017-10-31 15:24:14
15#
dexteryao 发表于 2017-10-31 15:12
如果用我给你的代码就不需要事件了。tab和这些属性没有关系,不知道您说得顺序不对是什么意思

我先试一下,顺序不对就是,正确的顺序是,spread1里面所有cell走完之后再走spread2,不对的时候就是spread1还没走完,就自动进spread2里面了。
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2017-10-31 15:12:58
14#
如果用我给你的代码就不需要事件了。tab和这些属性没有关系,不知道您说得顺序不对是什么意思
回复 使用道具 举报
liuyunan
注册会员   /  发表于:2017-10-31 14:32:38
13#
liuyunan 发表于 2017-10-31 14:26
fpSpread1.RetainSelectionBlock = false; 如果只改这一个属性,那么是我刚刚上面说的那种现象,但是后 ...

代码需求跟您说的是一样的
回复 使用道具 举报
liuyunan
注册会员   /  发表于:2017-10-31 14:26:41
12#
dexteryao 发表于 2017-10-31 13:58
我明白您的需求了,选中单元格时候高亮,不选的时候不要背景色。
使用如下代码

fpSpread1.RetainSelectionBlock = false; 如果只改这一个属性,那么是我刚刚上面说的那种现象,但是后来把剩下三个属性都改了的话,好像Tab按下时单元格的顺序都不对了,所以在想这两者之间是不是有相互影响。
回复 使用道具 举报
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中只负责给单元格置颜色没有其他事情。
回复 使用道具 举报
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 13:55:59
9#
liuyunan 发表于 2017-10-31 13:25
对的,我的蓝色设置在EditModeOn事件里面,然后LeaveCell事件里面有对颜色的控制,很奇怪的一点是,我按E ...

我再补充一下,我刚刚调试的时候,发现前面所有cell按Tab的时候都会走LeaveCell事件,但是最后一个cell按下Tab的时候不走LeaveCell事件。
回复 使用道具 举报
liuyunan
注册会员   /  发表于:2017-10-31 13:25:19
8#
dexteryao 发表于 2017-10-31 11:24
您好,那个蓝色是您在editModeOn事件上设置的吗?
如果是事件里设置,那您可以用EnterCell 和 LeaveCell

对的,我的蓝色设置在EditModeOn事件里面,然后LeaveCell事件里面有对颜色的控制,很奇怪的一点是,我按Enter另焦点移动的时候颜色效果是对的,但是按Tab另焦点移动的时候,最后一个格之后走到下一控件的时候,这个最后一个cell的蓝色就下不去了。
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部