找回密码
 立即注册

QQ登录

只需一步,快速开始

harborzhb

高级会员

7

主题

18

帖子

1769

积分

高级会员

积分
1769

活字格认证

harborzhb
高级会员   /  发表于:2014-1-6 11:04  /   查看:6948  /  回复:5
VSView8.0程序中,有 Dev.TextWidth("A") 代码,该代码是返回字符串“A”所占的宽度,单位是:缇,Dev为VSPrinter类型。

请问在Reports for WinForms中,有相对应的方法么?

5 个回复

倒序浏览
iceman
社区贡献组   /  发表于:2014-1-6 13:57:00
沙发
回复 1楼harborzhb的帖子

harborzhb 你好,
抱歉,Winforms 平台没有该功能,能否详细描述下你现在的需求?
回复 使用道具 举报
harborzhb
高级会员   /  发表于:2014-1-6 14:38:00
板凳
回复 2楼iceman的帖子

我们现在在做把VSView8.0程序升级到Reports for WinForms的程序。

VSView8.0中原有的程序逻辑是要一行显示50个字。
根据Dev的文字字号大小,先取得一个文字所占的宽度,然后乘以50得到一行文档的总宽度,
把以上算出的宽度与Dev的宽度进行比较,如果大于Dev的宽度,则循环减小Dev的文字字号大小,
直到算出的宽度比Dev的宽度小。

然后按照上面的文字字号输出文字。
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2014-1-6 16:19:00
地板
回复 3楼harborzhb的帖子

附件是更改报表中字体大小的方法,看是否对你的问题有所帮助:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
harborzhb
高级会员   /  发表于:2014-1-7 09:48:00
5#
回复 4楼iceman的帖子

参照你提供的例子,CalcSize方法可以实现 TextWidth("A")的功能。
CalcSize返回的宽度的单位是cm,根据1 厘米=567 缇,就可以模仿出TextWidth("A")的功能了。
谢谢Iceman。
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2014-1-7 11:37:00
6#
回复 5楼harborzhb的帖子

好的,感谢分享你的实现方法。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部