找回密码
 立即注册

QQ登录

只需一步,快速开始

avril1991

初级会员

3

主题

7

帖子

326

积分

初级会员

积分
326

活字格认证

最新发帖

[已处理] Spread7.0列宽问题

avril1991
初级会员   /  发表于:2014-1-27 15:43  /   查看:7597  /  回复:7
我做的一个Spread假设整体宽度是800,然后有5列,第5列列宽为1350,这时候我就发现,滚动条即使移动到最后,最后一列也只能显示800宽度的内容。后面的550除了复制粘贴到别的文件里以外,无论如何都看不到了。请问有解决方法么?

7 个回复

倒序浏览
roger.wang
社区贡献组   /  发表于:2014-1-27 16:54:00
沙发
回复 1楼avril1991的帖子

试试这个属性:

  1. fpSpread1.HorizontalScrollBarPolicy = FarPoint.Win.Spread.ScrollBarPolicy.Always;
复制代码


scrollBar.gif

滚动条更多信息请参考文档:Spread Windows Forms 7.0 Product Documentation > Developer's Guide > Customizing Sheet Interaction > Customizing Interaction with the Overall Component > Customizing the Scroll Bars of the Component。
回复 使用道具 举报
avril1991
初级会员   /  发表于:2014-1-27 17:26:00
板凳
回复 2楼roger.wang的帖子

不好意思,还是不行。我遇到的问题是,单列宽度大于Spread整体框架宽度。
比如Spread有800x150大小,我的最后一列是1350x15。然后跑起来之后发现,即使滚动条拉到最右侧了,但是最后一列也只能现实800x15的大小,而后面的那部分怎么都看不到,也没法拖宽Spread。
「                        」←假设这是Spread宽度
【                                                                       】←这是我最后一列的列宽
当我把滚动条拉到最右边时
【                                           】←最后一列的内容只能显示出这么多,后面的部分都看不到
我想知道有没有办法看到后面的部分?
回复 使用道具 举报
roger.wang
社区贡献组   /  发表于:2014-1-28 17:36:00
地板
回复 3楼avril1991的帖子

您的描述非常清晰,我写了几行代码复原了您的场景:
  1.       this.fpSpread1.Width = 500;
  2.                 this.fpSpread1.ActiveSheet.ColumnCount = 5;
  3.                 for (int i = 0; i < 4; i++)
  4.                 {
  5.                     this.fpSpread1.ActiveSheet.Columns[i].Width = 100;   
  6.                 }

  7.                 fpSpread1.ActiveSheet.Columns[4].CellType = new TextCellType() {  WordWrap = true};
  8.                 this.fpSpread1.ActiveSheet.Columns[4].Width = 200;
  9.                 this.fpSpread1.ActiveSheet.Cells[0, 4].Text = @"sadfffffffkjlskdjflksjdflkjskljkjlkjkjlkjlkjlkjlkjlkjlkjkjkjkjkjlkjlkjlkjlkjlkjlkjlkjlkjlkjlkjlkjlkjsadfffffffkjlskdjflksjdflkjskljkjlkjkjlkjlkjlkjlkjlkjlkjkjkjkjkjlkjlkjlkjlkjlkjlkjlkjlkjlkjlkjlkjlkj";
复制代码


添加个TextCellType,设置WordWrap 为true看看效果能用不。
回复 使用道具 举报
avril1991
初级会员   /  发表于:2014-1-29 16:08:00
5#
回复 4楼roger.wang的帖子

      this.fpSpread1.Width = 500;
                this.fpSpread1.ActiveSheet.ColumnCount = 5;
                for (int i = 0; i < 4; i++)
                {
                    this.fpSpread1.ActiveSheet.Columns.Width = 100;   
                }
                this.fpSpread1.ActiveSheet.Columns[4].Width = 800;
                this.fpSpread1.ActiveSheet.Cells[0, 4].Text = @"sadfffffffkjlskdjflksjdflkjskljkjlkjkjlkjlkjlkjlkjlkjlkjkjkjkjkjlkjlkjlkjlkjlkjlkjlkjlkjlkjlkjlkjlkjsadfffffffkjlskdjflksjdflkjskljkjlkjkjlkjlkjlkjlkjlkjlkjkjkjkjkjlkjlkjlkjlkjlkjlkjlkjlkjlkjlkjlkjlkj(更长)";

我想问的是以上这种代码的问题。最后一列内容会更长(和列宽一样长),请问如果我想只在一行中(即不折行)显示我想表示的内容。有没有办法呢?还请您帮我研究研究。
回复 使用道具 举报
roger.wang
社区贡献组   /  发表于:2014-1-29 17:08:00
6#
回复 5楼avril1991的帖子

如果不折行,只能把最后一列文字缩小显示了。

fpSpread1.ActiveSheet.Columns[4].CellType = new TextCellType() {  ShrinkToFit = true};
回复 使用道具 举报
avril1991
初级会员   /  发表于:2014-2-11 09:06:00
7#
明白了,谢谢
回复 使用道具 举报
roger.wang
社区贡献组   /  发表于:2014-2-11 10:23:00
8#
回复 7楼avril1991的帖子

:Z  谢谢您的反馈。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部