找回密码
 立即注册

QQ登录

只需一步,快速开始

315834729

论坛元老

5

主题

18

帖子

5311

积分

论坛元老

积分
5311

活字格认证

最新发帖
315834729
论坛元老   /  发表于:2012-12-4 13:24  /   查看:10489  /  回复:15
单元格中数据太长,我想缩小字体,填充到这个单元格

15 个回复

倒序浏览
315834729
论坛元老   /  发表于:2012-12-4 14:25:00
沙发
另外想问个问题,我用代码添加一行后,如何跟上一行一样的边框线
bd.jpg (39.9 KB, 下载次数: 331)
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2012-12-4 16:49:00
板凳
回复 1楼315834729的帖子

请参考以下代码:
  1.         private void Form1_Load(object sender, EventArgs e)
  2.         {
  3.             CTextCellType ctc = new CTextCellType();
  4.             fpSpread1.ActiveSheet.Columns[0].CellType = ctc;                        
  5.         }

  6.         private class CTextCellType : FarPoint.Win.Spread.CellType.TextCellType
  7.         {            
  8.             public override void PaintCell(Graphics g, Rectangle r, FarPoint.Win.Spread.Appearance appearance, object value, bool isSelected, bool isLocked, float zoomFactor)
  9.             {
  10.                 if (value != null)
  11.                 {
  12.                     Font font = appearance.Font;

  13.                     while (g.MeasureString(value.ToString(),font).Width >= r.Width && font.Size >= 5)
  14.                     {
  15.                         font = new Font(font.FontFamily, font.Size - 0.5f, font.Style);
  16.                     }
  17.                     
  18.                     appearance.Font = font;
  19.                 }

  20.                 base.PaintCell(g, r, appearance, value, isSelected, isLocked, zoomFactor);
  21.             }
  22.         }
复制代码
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2012-12-4 18:23:00
地板
回复 2楼315834729的帖子

请尝试一下代码:
  1.     private void 插入行ToolStripMenuItem_Click(object sender, EventArgs e)
  2.     {
  3.         fpSpread1.PerformLayout();
  4.         int row = fpSpread1.ActiveSheet.ActiveRowIndex;
  5.         int colcount = fpSpread1.ActiveSheet.ColumnCount;
  6.         fpSpread1.ActiveSheet.Rows.Add(row+1, 1);
  7.         fpSpread1.ActiveSheet.CopyRange(row, 0, row + 1, 0, 1, colcount, false);
  8.         fpSpread1.ActiveSheet.ClearRange(row + 1, 0, 1, colcount, true);
  9.         fpSpread1.ResumeLayout();
  10.     }
复制代码
回复 使用道具 举报
315834729
论坛元老   /  发表于:2012-12-7 11:46:00
5#
缩小字体填充那个代码我试了不行,if (value != null)
value 一直是null
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2012-12-7 12:11:00
6#
那你的数据是怎么设置给spread的呢,能否发给demo给我们调试一下。
回复 使用道具 举报
315834729
论坛元老   /  发表于:2012-12-7 13:20:00
7#
2.6M传不上来,传个小的吧
回复 使用道具 举报
315834729
论坛元老   /  发表于:2012-12-7 13:21:00
8#
farpoint5.rar (996 Bytes, 下载次数: 426)
回复 使用道具 举报
315834729
论坛元老   /  发表于:2012-12-7 14:24:00
9#
是不是版本的问题,我得版本5.0.3522.2008
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2012-12-7 15:36:00
10#
我使用该代码在5.2.3522.2008中测试可以正常运行,附件是我的工程,你在发送附件时,可以把obj和bin目录删除

WindowsFormsApplication1.zip (13.78 KB, 下载次数: 1381)
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部