找回密码
 立即注册

QQ登录

只需一步,快速开始

bingdaoice

中级会员

44

主题

208

帖子

608

积分

中级会员

积分
608
bingdaoice
中级会员   /  发表于:2020-7-30 12:45  /   查看:4164  /  回复:3
1金币
本帖最后由 bingdaoice 于 2020-7-30 15:45 编辑

问题:1、请问如何判断RichTextCellType内容是否超出单元格?
          2、如果内容超出了单元格,如何设置字体缩小和自动换行,并再循环判断,直至单元格将内容完全显示出来。          3、当单元格设置为RichTextCellType类型后,如何设置其字体、大小?
举例:图中T8单元格内容已超出单元格且未完全显示。如何通过代码来解决我想在该单元格把内容完全显示出来的问题。
DEMO中有此图的XML。可运行DEMO
image.png699839782.png

spread_单元格内容超出后未完全显示.rar

14.39 MB, 下载次数: 432

最佳答案

查看完整内容

之前你发过一个帖子,是对文本单元格调整字体大小,这个是可以做到的 但是对应富文本格式,你需要去调整这个富文本本身编码中的字体大小,没有办法通过spread本身来完成,不过仍然可以套用一部分之前那的方法

3 个回复

倒序浏览
最佳答案
最佳答案
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2020-7-30 12:45:34
来自 2#
之前你发过一个帖子,是对文本单元格调整字体大小,这个是可以做到的

但是对应富文本格式,你需要去调整这个富文本本身编码中的字体大小,没有办法通过spread本身来完成,不过仍然可以套用一部分之前那的方法
  1.         private class CRTextCellType : FarPoint.Win.Spread.CellType.RichTextCellType
  2.         {

  3.             public override void PaintCell(Graphics g, Rectangle r, FarPoint.Win.Spread.Appearance appearance, object value, bool isSelected, bool isLocked, float zoomFactor)
  4.             {
  5.                 {
  6.                     if (value != null)
  7.                     {
  8.                         System.Drawing.Font font = appearance.Font;

  9.                         while ((g.MeasureString(value.ToString(), font).Width >= r.Width|| g.MeasureString(value.ToString(), font).Height >= r.Height) && font.Size >= 5)
  10.                         {
  11. //在这里来改变RTF本身的字体大小,这个无法通过spread控件设置,将改变后的rtf重新赋值给spread单元格再继续判断
  12.                         }

  13.                         appearance.Font = font;
  14.                     }

  15.                     base.PaintCell(g, r, appearance, value, isSelected, isLocked, zoomFactor);
  16.                 }
  17.             }
  18.         }
复制代码


回复 使用道具 举报
bingdaoice
中级会员   /  发表于:2020-7-31 08:48:28
3#
好的,谢谢,马上测试!
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2020-7-31 11:05:22
4#
不客气
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部