roger.wang 发表于 2014-5-16 10:51:00

自定义单元格类型实现PopupCellType

问题描述:如题。
问题解答:可以通过继承Spread GeneralCellType ,重载GetEditorControl方法来指定编辑器。
关键代码:
      public class PopupCellType : FarPoint.Win.Spread.CellType.GeneralCellType
      {
            TypeControl control = newTypeControl();
            Public override Control GetEditorControl(Control parent, FarPoint.Win.Spread.Appearance appearance, float zoomFactor)
            {
                return control;
            }
      }


效果截图:


示例下载:点击下载

zztoll 发表于 2015-12-1 10:22:00

这个自定义控件的样式正好对我有用
但是我希望如ComboBoxCellType那样,仅在点击时进入编辑模式,显示编辑控件TypeControl,
当点击别处时,退出编辑状态,隐藏编辑控件TypeControl
请问该怎么做呢,
谢谢!

frank.zhang 发表于 2015-12-1 17:21:00

回复 2楼zztoll的帖子

您好,

您的需求是不弹出编辑的对话框,直接编辑吗?
最好有个截图描述下您的需求。

zztoll 发表于 2015-12-1 17:41:00

是的,就是需要弹出一个编辑对话框来直接编辑
界面就跟roger.wang的DEMO差不多

只是roger.wang的那个DEMO将编辑控件显示出来之后,会一直显示
并且也无法点击其它单元格.
通常情况下,点其它单元格时,应取消当前单元格的编辑状态才对.

frank.zhang 发表于 2015-12-2 18:17:00

您好,

这个问题比较复杂,我们需要联系开发,以确定是否能够实现。由于时差的影响需要1到2个工作日,希望能够耐心等候。

frank.zhang 发表于 2015-12-8 14:19:00

您好,

目前这个问题,经过验证,上述代码是通过继承GeneralCellType,重写了Editor方法,在这个方法中将一个新的控件返回给了系统。
如果希望支持您所描述的功能,需要增加一些代码。在fpSpread1_MouseDown中可以接受到这个点击,然后做点击的位置判断,如果在其它的区域,设置一个退出策略。比如,将当前的值,保持后退出。在设置选择到新的单元格。
实现的思路大概就是这样,但是实现确实比较复杂,您可以先尝试制作,如果有问题,我们可以进行讨论。

zztoll 发表于 2015-12-21 18:08:00

谢谢,我用合并两个单元格的方法去实现了这个UI.

frank.zhang 发表于 2015-12-23 16:37:00

回复 7楼zztoll的帖子

:hjyzw:
页: [1]
查看完整版本: 自定义单元格类型实现PopupCellType