找回密码
 立即注册

QQ登录

只需一步,快速开始

瑚边

注册会员

9

主题

29

帖子

92

积分

注册会员

积分
92
瑚边
注册会员   /  发表于:2021-12-23 20:46  /   查看:3082  /  回复:7
1金币
本帖最后由 瑚边 于 2021-12-23 20:53 编辑

控件版本:Spread 12.0J
现象:
SPREAD里有一列的CellType设定成了CheckBox,并且SPREAD的AutoClipboard = True。
在SPREAD内选中任何一个Cell按Ctrl+C,然后焦点移动到CheckBox的Cell按Ctrl+V,
现象是当Copy的值是1或者2时,Ctrl+V之后CheckBox的勾选状态变成ON,除此之外,CheckBox的勾选状态变成OFF。
但是在DEBUG的时候发现,按下Ctrl+V之后,该CheckBox的Cell的Text值和Value值并不和勾选状态同步。
例如:
Copy内容是12345时,粘贴后,CheckBoxCell的Text值为"True",Value值和Copy内容一致。
Copy内容是数值以外的内容时,粘贴后,CheckBoxCell的Text值和Value值都和Copy内容一致。
Copy内容是数字2时,粘贴后,CheckBoxCell的Text值为"True",Value值和Copy内容一致。↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑但是此时勾选状态是ON↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
Copy内容是数字3时,粘贴后,CheckBoxCell的Text值为"True",Value值和Copy内容一致。
↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑但是此时勾选状态是OFF↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
以上测试内容我写了个Demo,效果如下图所示。
操作:将C列的内容Ctrl+C后Ctrl+V到B列的同行的Cell,之后点Button2输出B1~B4的Value和Text。(B列的所有CELL初始状态都是OFF。)
testResult.png104353331.png Value&Text.png725429687.png
这造成了我无法根据获取到的Text和Value来判断CheckBox的勾选状态。

我也尝试过用Change事件或者CellChanged事件来获取EditingControl的CheckStatus,但是拿到的EditingControl是Nothing。
所以有什么办法可以在键盘操作的过程中,获取CheckBox的当前勾选状态呢?




最佳答案

查看完整内容

新版本里也是可以这样设置的,但是仍然会出现同样的问题 本质上来说复选框里能识别的只有TRUE,FALSE,数字只有0,1,2(用于三态),其他的都不在设计范围内 复选框状态没有办法直接判断。目前建议通过Value判断, 在当前复选框没有设置三态的情况下,如果value是1,2 ,或者True那么就是选中的,否则没有选中 在三态情况下,如果为0,False,那么为未选中,如果为1,True那么为选中,其他的值都是不确定状态

7 个回复

倒序浏览
最佳答案
最佳答案
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-12-23 20:46:10
来自 6#
新版本里也是可以这样设置的,但是仍然会出现同样的问题

本质上来说复选框里能识别的只有TRUE,FALSE,数字只有0,1,2(用于三态),其他的都不在设计范围内

复选框状态没有办法直接判断。目前建议通过Value判断,
在当前复选框没有设置三态的情况下,如果value是1,2 ,或者True那么就是选中的,否则没有选中

在三态情况下,如果为0,False,那么为未选中,如果为1,True那么为选中,其他的值都是不确定状态 image.png625154723.png
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-12-23 21:53:41
2#
问题已经收到,明天帮你验证后给你回复解决办法
回复 使用道具 举报
瑚边
注册会员   /  发表于:2022-1-4 13:30:13
3#
SPREAD可以设置某一列不能复制粘贴,其他的列可以复制粘贴么?
AutoClipboard属性好像会影响到所有的列。
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-1-4 15:21:37
4#
没有办法设置单独单列是否可以复制粘贴

另外关于您这边上一个问题,由于目前以新版本测试的话,粘贴会直接替换为复制的单元格内容,连同复选框也没有了,和老版本的行为可能并不一样,这里目前没有老版本的日文版动态库来测试。你那边如果已经写好了demo请上传上来我帮你看看(请包含引用的dll)
回复 使用道具 举报
瑚边
注册会员   /  发表于:2022-1-4 16:19:28
5#
本帖最后由 瑚边 于 2022-1-4 16:24 编辑

Demo上传了。。 WindowsApp2.zip (14.08 MB, 下载次数: 615)
回复 使用道具 举报
瑚边
注册会员   /  发表于:2022-1-4 19:45:31
7#
Richard.Ma 发表于 2022-1-4 18:07
新版本里也是可以这样设置的,但是仍然会出现同样的问题

本质上来说复选框里能识别的只有TRUE,FALSE, ...

明白了,所以只能通过判固定值来判断Check的状态。最开始尝试的时候就是发现似乎只能在代码里固定判0,1,2来获取状态,感觉不太好,所以一直想回避写固定值的方法。如果就是这个机制的话那只能这么写了。
感谢回复。
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-1-4 21:50:05
8#
不客气
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部