一个古怪问题,大求救!请各们高手帮帮忙。

时间:2021-07-18 20:47:38
请先看我的代码。
   dim bl as single
   picture1.font.name = "宋体"
   bl = cint(text1.text)/100
   picture1.font.size = 20 * bl
   msgbox picture1.textwidth("打印练习")/bl
当text1.text中为100时输出的是1620,当为90时输出的是1600,
当为70时输出的是1628.571。。。也就是说text1中数字不同输出的
结果就不同,但按照原理来说应该是相同的啊。后来在text1中的数值
为100时将picture1.font.size输出,结果为20.25,怎么可能?结果
应该是20啊。看来问题在于picture1.font.size的运算结果不正确
造成的。不知为什么?请各位高手帮帮忙。
   
   

   

9 个解决方案

#1


平时我们说的字号,只是近似的大小,系统会自动将你的赋值转化到最相近的值,这就是为什么你给了个20的值,缺输出了20.25,因为这个20.25才是真正的值!

#2


谢谢uguess(uguess)。
那么这句  msgbox picture1.textwidth("打印练习")/bl
输出的结果应该每次都一样才对啊,至少不会相差那么大吧。

#3


谢谢uguess(uguess)。
那么这句  msgbox picture1.textwidth("打印练习")/bl
输出的结果应该每次都一样才对啊,至少不会相差那么大吧。

#4


你在这句之前不是改变了FontSize么:
picture1.font.size = 20 * bl
 怎么会一样呢?
 

#5


谢谢。uguess(uguess).
那我怎么才能保证它固定是一个值呢?
因为我做的报表中数值字段输出是居右的,定位时要
用到输出文本的宽度。如果宽度不固定下来,当按照不
同比例来预览时就会出现输出位置不正确的问题。

#6


英文字体分等宽和非等宽,中文字体应该是等宽的。

#7



  1、没办法,如果你要这样做,只有每次都算出字符串的长度,然后调整符合你的要求。
  2、如果你要做不同比例的预览,我有个建议:先按100%的比例把报表画在一个PictureBox中,然后放一个Image控件,令Image1.Picture=PictureBox.Image,这样,以后的缩放都可以用Image控件的Stretch属性来进行比例缩放。你认为呢?



#8


不好意思,今天早上公司宽带有问题,现在才能上网。
谢谢uguess(uguess).也谢谢fuxc(Michael).
还有更好的办法吗?

#9


难道就没有更好的办法了吗?

#1


平时我们说的字号,只是近似的大小,系统会自动将你的赋值转化到最相近的值,这就是为什么你给了个20的值,缺输出了20.25,因为这个20.25才是真正的值!

#2


谢谢uguess(uguess)。
那么这句  msgbox picture1.textwidth("打印练习")/bl
输出的结果应该每次都一样才对啊,至少不会相差那么大吧。

#3


谢谢uguess(uguess)。
那么这句  msgbox picture1.textwidth("打印练习")/bl
输出的结果应该每次都一样才对啊,至少不会相差那么大吧。

#4


你在这句之前不是改变了FontSize么:
picture1.font.size = 20 * bl
 怎么会一样呢?
 

#5


谢谢。uguess(uguess).
那我怎么才能保证它固定是一个值呢?
因为我做的报表中数值字段输出是居右的,定位时要
用到输出文本的宽度。如果宽度不固定下来,当按照不
同比例来预览时就会出现输出位置不正确的问题。

#6


英文字体分等宽和非等宽,中文字体应该是等宽的。

#7



  1、没办法,如果你要这样做,只有每次都算出字符串的长度,然后调整符合你的要求。
  2、如果你要做不同比例的预览,我有个建议:先按100%的比例把报表画在一个PictureBox中,然后放一个Image控件,令Image1.Picture=PictureBox.Image,这样,以后的缩放都可以用Image控件的Stretch属性来进行比例缩放。你认为呢?



#8


不好意思,今天早上公司宽带有问题,现在才能上网。
谢谢uguess(uguess).也谢谢fuxc(Michael).
还有更好的办法吗?

#9


难道就没有更好的办法了吗?