找回密码
 立即注册

QQ登录

只需一步,快速开始

keaitutu

注册会员

11

主题

33

帖子

94

积分

注册会员

积分
94

活字格认证

keaitutu
注册会员   /  发表于:2015-8-14 14:02  /   查看:5871  /  回复:6
你好,
在后台写的spread的列头的宽度在后台怎么设定呢。现在是用Columns[0]的话不是列头那一列。
用了GetPreferredColumnWidth也只是能设定数据的第一列。不能控制行头那一列的宽度
我看之前版主提示用 this.fpSpread1.ActiveSheet.Columns.Width = fitColumnWidth;
我的这个版本没有Width 这个属性,不知道怎么办了。

6 个回复

倒序浏览
frank.zhang
社区贡献组   /  发表于:2015-8-14 16:51:00
沙发
您好,
可以使用以下代码实现:
  1.             for (int i = 0; i < this.fpSpread1.ActiveSheet.ColumnCount; i++)
  2.             {
  3.                 float fitColumnWidth = this.fpSpread1.ActiveSheet.GetPreferredColumnWidth(i);
  4.                 this.fpSpread1.ActiveSheet.Columns[i].Width = fitColumnWidth;
  5.             }
复制代码

专门在7.0的版本测试,可以使用。
回复 使用道具 举报
keaitutu
注册会员   /  发表于:2015-8-14 18:05:00
板凳
这个循环也只是循环列头后面的列,我这里是两列。还是没搞定,请参看附件。
列头折行了,我设置了不折没起作用。
代码:
            this.aa.Size = new Size(135, 73);
            //this.shtCourseReservationStatus.SetAllColumnsWidth(50);
            EnhancedColumnHeaderRenderer render = new FarPoint.Win.Spread.CellType.EnhancedColumnHeaderRenderer();
            render.WordWrap = false;
            for (int i = 0; i < this.aa.ActiveSheet.ColumnCount;i++ )
            {
                float width = this.aa.ActiveSheet.GetPreferredColumnWidth(i);
                this.aa.ActiveSheet.Columns.Width = width;

            }

原来设置的数据的两列是50, 现在执行之后是47,剩下的应该足够宽。
其实,初期显示的时候是好的,从后台取出出去就被撑成这样了

11.png (4.84 KB, 下载次数: 359)
回复 使用道具 举报
rbgongming
论坛元老   /  发表于:2015-8-17 09:17:00
地板
你好,你是要设置男女那一列的列宽吗?代码如下:
Me.FpSpread1_Sheet1.RowHeader.Columns.Get(0).Width = 88
你可以试一试。
把简单的事做好就是不简单,
把平凡的事做好就是不平凡。
回复 使用道具 举报
keaitutu
注册会员   /  发表于:2015-8-17 09:43:00
5#
@rbgongming ,很感谢,通过你的指点问题解决了。
回复 使用道具 举报
rbgongming
论坛元老   /  发表于:2015-8-17 09:44:00
6#
回复 5楼keaitutu的帖子

有问题欢迎继续沟通,我也在学习期间。

评分

参与人数 1金币 +500 收起 理由
frank.zhang + 500 协助解答问题

查看全部评分

把简单的事做好就是不简单,
把平凡的事做好就是不平凡。
回复 使用道具 举报
frank.zhang
社区贡献组   /  发表于:2015-8-17 14:11:00
7#
回复 5楼keaitutu的帖子

您好,
这个问题已经解决了吗?
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部