找回密码
 立即注册

QQ登录

只需一步,快速开始

xiaoding

论坛元老

6

主题

16

帖子

4212

积分

论坛元老

积分
4212

活字格认证

xiaoding
论坛元老   /  发表于:2015-5-6 19:37  /   查看:25281  /  回复:18
不知道Spread表格里有没有关于列宽的自动调整,类似.net里的datagradeView 里的 autosize属性,自动根据数据的大小来调整列宽的呢
还有就是问下,这个设置字居中对齐的是哪个属性啊,找啊找不到哇
1.jpg (57.07 KB, 下载次数: 1389)

18 个回复

倒序浏览
Alice
社区贡献组   /  发表于:2015-5-7 16:18:00
沙发
回复 1楼xiaoding的帖子

感谢你对该问题的反馈。
很抱歉回复晚了。

Sheet下有GetPreferredColumnWidth方法,可以获取基于列的文字内容的实际宽度,
然后将这个得到的宽度设置给该列即可。
代码参考:
  1. FarPoint.Win.Spread.Row row;
  2. FarPoint.Win.Spread.Column col;
  3. float sizerow;
  4. float sizercol;
  5. row = fpSpread1.ActiveSheet.Rows[0];
  6. col = fpSpread1.ActiveSheet.Columns[0];
  7. fpSpread1.ActiveSheet.Cells[0, 0].Text = "This text is used to determine the height and width.";
  8. sizerow = row.GetPreferredHeight();
  9. sizecol = col.GetPreferredWidth();
  10. row.Height = sizerow;
  11. col.Width = sizecol;
复制代码
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
xiaoding
论坛元老   /  发表于:2015-5-8 09:25:00
板凳
回复 2楼Alice的帖子

这个知道的,现在遇到的问题就是怎么获取标题栏上的字体的长度,想实现根据标题栏或者列内的值的数据长度来自动调整列宽?谢谢
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2015-5-8 16:03:00
地板
回复 3楼xiaoding的帖子

你好。
GetPreferredWidth方法就是获取该列按字体的长度计算的宽度。
如果你的需求是需要不断的根据输入调整宽度的话,那么这部分需要根据你的需求设计代码逻辑实现。比如在编辑状态结束后调用GetPreferredWidth获得实际宽度,然后设置给列宽。
但是有一点需要注意的是,频繁的进行列宽的刷新操作,有可能会引起性能问题。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
xiaoding
论坛元老   /  发表于:2015-5-14 19:27:00
5#
回复 4楼Alice的帖子

还有一个就是怎么设置字体剧中对其呢?不好意思,问了这么多!
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2015-5-15 14:16:00
6#
回复 5楼xiaoding的帖子

你好。
单元格Cell下有HorizontalAlignment和VerticalAlignment属性可以用来设置居中。将这个属性都设置为Center就是居中。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
xiaoding
论坛元老   /  发表于:2015-5-19 14:26:00
7#
回复 6楼Alice的帖子

谢谢
回复 使用道具 举报
xiaoding
论坛元老   /  发表于:2015-5-19 16:09:00
8#
回复 6楼Alice的帖子

http://gcdn.gcpowertools.com.cn/showtopic-540.html
看了这个帖子,里面如果要包括标题栏的话是需要这样设置的,可我找不到这个设置的属性到底在哪里啊!!!能不能做个例子呢,谢谢了!
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2015-5-19 17:47:00
9#
回复 8楼xiaoding的帖子

你好。
你指的是如何设置wordwrap么?

wordwrap为true的单元格是不参与GetPreferredColumnWidth方法的,不可能既要实现多行显示文字,又要实现按照多行显示文字去计算一行显示文字的宽度。这是矛盾的。

另外wordwrap属性存在于CellType单元格类型下的。
如果你需要设置wordwrap,就需要设置一个单元格类型,比如TextBoxCelltype,然后设置wordwrap,最后将这个单元格类型设置给某一列,或是行,或是单元格,或是header。
设置wordwrap请参考如下代码:
  1.         Dim txt As New FarPoint.Win.Spread.CellType.TextCellType()
  2.             txt.WordWrap = False
  3.             FpSpread1.ActiveSheet.ColumnHeader.Cells(0, 0).CellType = txt
复制代码
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
liuning
注册会员   /  发表于:2016-2-22 15:42:00
10#
spread 中GetPreferredColumnWidth 是不是只判断列中最大的宽度?
简单说就是这个意思
if  标题的宽度〉列中所有的列的数据的宽度
    列幅=标题的宽度
else
   列幅=列中数据的最大的宽度
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部