找回密码
 立即注册

QQ登录

只需一步,快速开始

deppp

论坛元老

43

主题

123

帖子

4662

积分

论坛元老

积分
4662

活字格认证

deppp
论坛元老   /  发表于:2013-1-7 11:17  /   查看:11967  /  回复:11
在VB6中使用的是Spread6.0,其中提供了一个方法ColWidthToTwips

用下面的代码可以计算出在.Net中对应宽度的值是多少

  1. .Col = cCOL_SIZE
  2. .Value = "宽度"
  3. .ColWidth(.Col) = 12.37
  4. Dim collen As Long
  5. .ColWidthToTwips 12.37, collen
  6. collen = collen /15
  7. debug.print collen
复制代码


请问在Spread for winform5中有没有对应的方法可以使用?

11 个回复

倒序浏览
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2013-1-7 13:55:00
沙发
在.NET平台中,大小单位不再使用Twips,而是使用Pixels,所以,Spread for WinForms5中也没有提供处理Twips的方法。
回复 使用道具 举报
deppp
论坛元老   /  发表于:2013-1-7 14:36:00
板凳
谢谢dof
回复 使用道具 举报
deppp
论坛元老   /  发表于:2013-1-7 21:20:00
地板
老版本Spread中的UnitType属性的VGA单位具体是以什么为单位的?RowHeightToTwips方法将VGA单位的行高转换为Twips时候的换算关系能告知一下吗
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2013-1-8 18:50:00
5#
这个我的看一看,明天给你回复。
回复 使用道具 举报
deppp
论坛元老   /  发表于:2013-1-16 16:47:00
6#
自己顶一下
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2013-1-16 19:36:00
7#
回复 使用道具 举报
deppp
论坛元老   /  发表于:2013-1-17 17:42:00
8#
回复 7楼dof的帖子

感谢您的回复,您给的链接是缇转像素的算法,但是现在根据Spread的属性看,表示单位是UnitTypeVGABase,而且实际算出来的值感觉这个UnitTypeVGABase单位不是像素单位。想问一下这个UnitTypeVGABase单位具体是个什么样的单位。谢谢
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2013-1-18 11:19:00
9#
UnitTypeVGABase可以理解为,默认字体下能够显示的字符数量,比如以下代码设置列宽为10,可以显示是个英文字符:
  1. Private Sub Form_Load()

  2. fpSpread1.UnitType = UnitTypeVGABase
  3. fpSpread1.ColWidth(2) = 10
  4. fpSpread1.Col = 2
  5. fpSpread1.Row = 0
  6. fpSpread1.Value = "ABCDABCDAB"

  7. End Sub
复制代码


没有一个好的办法直接将 UnitTypeVGABase  转换为像素,只能将UnitTypeVGABase转换为Twips,然后将Twips转换为像素,比如:1个UnitTypeVGABase等于 120 Twips,然后将120Twips转换为像素。
回复 使用道具 举报
deppp
论坛元老   /  发表于:2013-1-18 17:38:00
10#
回复 9楼dof的帖子

感谢您的回答。归根结底我还是没有明白这个UnitTypeVGABase下设定的高度和宽度是一个什么单位,
像素以及Twips这些标准单位之间的换算我已经了解,但是如果将一个Spread的列宽或列高转换为标准单位?
我想知道老版本的ColWidthToTwips方法是怎样实现这个转换的。谢谢
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部