找回密码
 立即注册

QQ登录

只需一步,快速开始

sxyweiren

中级会员

73

主题

366

帖子

755

积分

中级会员

积分
755

活字格认证微信认证勋章

sxyweiren
中级会员   /  发表于:2021-10-26 16:45  /   查看:3018  /  回复:3
1金币
想把FarPoint.Win.Spread.SheetView重写,增加几个属性。
但是打开设计器进行属性编辑保存之后,这几个属性的值就恢复成为默认值了。

比如我重写了SelectionPolicy这个属性。然后通过代码设定
.SelectionPolicy = FarPoint.Win.Spread.Model.SelectionPolicy.[Single]
但是我打开设计器之后,这个属性的值是默认值Range。
修改了其它属性保存之后,属性值就变成默认值了。

请问下,有没有什么方法可以保持之前设定的属性。

类似于CellType的Deserialize和Serialize方法。

3 个回复

倒序浏览
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-10-26 17:20:42
沙发
设计器是去直接修改FpSpread对象的,其中的所有sheetview都会被修改,所以并不建议你重写SheetView,这个肯定会被修改的

我不确定你说的“保持之前设定的属性。”是什么意思,如果你是通过设计器或者设计时界面属性中设置了SelectionPolicy,然后打开了设计器,此前设置的属性应该还是在的,

如果是通过代码等方式动态设置了,可以考虑保存为xml模板文件
回复 使用道具 举报
sxyweiren
中级会员   /  发表于:2021-10-27 08:49:57
板凳
Richard.Ma 发表于 2021-10-26 17:20
设计器是去直接修改FpSpread对象的,其中的所有sheetview都会被修改,所以并不建议你重写SheetView,这个肯 ...
保持之前设定的属性。
就是InitializeComponent函数里面定义的属性。

比如我重写了SelectionPolicy属性,然后通过设计器把该属性设定成Single,关闭设计器,关闭Form的Design。下次重新打开Form的Design,再次打开Spread设计器的时候,虽然代码里面是Single,但是设计器里面是Range
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-10-27 10:35:42
地板
我不确定你说的设计器是指VS 的“设计时界面”中的属性窗口还是“Spread设计器”,但是不管这两哪一个,修改sheet 的SelectionPolicy属性,最终其实都不是修改的InitializeComponent方法中的代码,只是修改了资源文件中的resource1,
另外我不确定你说的代码里面是Single是什么意思,是自己手动在InitializeComponent方法中加了一句吗
刚刚也测试了,就算是手动加的,在使用spread设计器修改后,这个手动加的代码也会被清除掉


image.png396990661.png
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部