请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册

QQ登录

只需一步,快速开始

清风沐阳
金牌服务用户   /  发表于:2025-6-2 18:40  /   查看:84  /  回复:3
1金币
需求背景:

1、我封装了一个自定义文件上传单元格,根据单元格值,在paint绘制内容
2、单元格值是文件上传之后的路径,如:value = [url1, url2, url3]
3、在paint中, 遍历value列表进行内容绘制。如下图:

4、当我新增、或删除文件时,单元格内容随之更新
5、但是我发现单元格每次更新时,都是整个单元格内容重新绘制一次
6、是否有方法可实现当value变化时局部更新单元格?
7、比如:当我删除最右侧文件时,仅仅只是最右侧图片内容消失,单元格左侧的内容不会重新绘制
8、我没有思路,不知道这样的需求是否可行呢?
附件: 您需要 登录 才可以下载或查看,没有帐号?立即注册

最佳答案

查看完整内容

您好!在每次对单元格编辑后,即单元格状态由输入态或编辑态切换为就绪态之际,单元格类型的paint方法均会执行将定义的内容绘制在单元格范围内的Canvas上,所以每次都会重新绘制。理解您想要的是只删除右侧图标但不重绘未作变更的部分,但是这些内容作为整体绘制在单元格Canvas中,无法仅删除部分。 您可以尝试在paint方法内部执行绘制的代码前后加上Worksheet:suspendPaint()和Worksheet:resumePaint()让肉眼对绘制的观察钝感 ...

3 个回复

倒序浏览
最佳答案
最佳答案
Wilson.Zhang
超级版主   /  发表于:2025-6-2 18:40:13
来自 2#
本帖最后由 Wilson.Zhang 于 2025-6-3 08:48 编辑

您好!在每次对单元格编辑后,即单元格状态由输入态或编辑态切换为就绪态之际,单元格类型的paint方法均会执行将定义的内容绘制在单元格范围内的Canvas上,所以每次都会重新绘制。理解您想要的是只删除右侧图标但不重绘未作变更的部分,但是这些内容作为整体绘制在单元格Canvas中,无法仅删除部分。

您可以尝试在paint方法内部执行绘制的代码前后加上Worksheet:suspendPaint()和Worksheet:resumePaint()让肉眼对绘制的观察钝感化。此外,再无其他优化手段。
回复 使用道具 举报
清风沐阳
金牌服务用户   /  发表于:2025-6-3 12:43:37
3#
好的
回复 使用道具 举报
Wilson.Zhang
超级版主   /  发表于:2025-6-3 13:38:24
4#

问题既已得到有效解答,那就结贴了。如遇新问题,欢迎发新帖沟通。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部