找回密码
 立即注册

QQ登录

只需一步,快速开始

dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2019-1-15 12:07:35
11#
CellTypeEditor是封装的方法,用当前cell的celltype打开CellTypeDialge,这个不能干预。
要打开一个Dialog 还不是当前单元格的celltype, 需要自己初始化 CellTypeDlgV3 。
具体实例代码我给你找找。
回复 使用道具 举报
品茗-3
金牌服务用户   /  发表于:2019-1-15 15:49:11
12#
本帖最后由 品茗-3 于 2019-1-15 15:58 编辑
dexteryao 发表于 2019-1-15 12:07
CellTypeEditor是封装的方法,用当前cell的celltype打开CellTypeDialge,这个不能干预。
要打开一个Dialog ...

你们12版已经实现了,你按我的步骤做验证下:
1.打开葡萄城设计器。
2.点击单元格A1,(此时工具栏显示的单元格类型是“无”)
3.选择工具栏单元格类型,点击设置文本,(此时程序打开的设计器显示为文本)
4.确认,即现在单元格A1是文本类型
5.还是单元格A1,选择工具栏单元格类型,点击设置富文本,(此时程序打开的设计器显示为富文本)
状态已经出现(即文本类型的单元格,点击富文本,设计器单元格类型显示的是我要的富文本,而不是单元格本身的文本) 11.gif

我之前写的下面的代码也能实现该效果,但不知道是不是你们也是这么做多,或有更好的封装接口。
你们这次升级的spread设计器我都没找到Demo程序可以参考,11版还有个代码,12版就一个应用程序,代码实例都没了
ICellType curCellType = _spreadObject.ActiveSheet.ActiveCell.CellType;
            _spreadObject.ActiveSheet.ActiveCell.CellType = null;
            if (!ExternalDialogs.CellTypeEditor(_spreadObject, (DesignerMain.CellTypeEnum)cellType))
         {
                _spreadObject.ActiveSheet.ActiveCell.CellType = curCellType;
            }
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2019-1-15 17:25:56
13#
您的需求我已经明白了,现在没有用CellTypeEditor,具体代码我在整理。
还有designer代码没有在sample里也询问相关部门了。
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2019-1-16 14:04:47
14#
参考如下代码,CellTypeEditor是做了封装,要实现你的需求就得直接调用CellTypeDlgV3了

  1. if (common.rm == null)
  2. {
  3.   common.LoadResourceManagerForStrings();
  4. }

  5. var ctd = new CellTypeDlgV3(fpSpread1); // here throw exception
  6. ctd.celltype = DesignerMain.CellTypeEnum.NumberCellType;
  7. ctd.InitValues(fpSpread1.ActiveSheet.ActiveCell.CellType, null);
  8. ctd.ShowDialog();
复制代码
回复 使用道具 举报
12
您需要登录后才可以回帖 登录 | 立即注册
返回顶部