请教VB高手Picture1.Width 和 Picture1.ScaleWidth有什么区别啊!!

2024-12-19 08:36:37
推荐回答(2个)
回答1:

返回控件中所包含位图的高度和宽度(按像素)。这些属性设计时不可用,运行时只读。

语法

[form.]PictureClip.Width

说明

这些属性仅当控件包含位图时有效。

在设计时用 Visual Basic 中的属性工作表能将位图加载到 PictureClip 控件中,在运行时用 LoadPicture 函数也能将位图加载到 PictureClip 控件中。

数据类型

Integer

当使用图形方法或调整控件位置时,返回或设置对象内部的水平 (ScaleWidth) 或垂直 (ScaleHeight) 度量单位。对于 MDIForm 对象,在设计时 是不可用的,并且在运行时是只读的。

语法

object.ScaleWidth [= value]

ScaleHeight 和 ScaleWidth 属性的语法包含下面部分:

部分 描述
Object 对象表达式,其值是“应用于”列表中的一个对象。
Value 一个用来指定水平或垂直度量的数值表达式。

说明

能够使用这些属性来为绘图或打印创建一个自定义的坐标比例尺。例如,语句 ScaleHeight = 100 将改变窗体实际内部高度的度量单位。取代当前高度为 n 个单位(缇、像素、...),高度将变为 100 个自定义单位。因而,50 个单位的距离就是对象的高度/宽度的一半,101 个单位的距离将超出对象 1 个单位。

为了定义基于标准度量单位的比例尺,例如缇、磅、像素、字符、英寸、毫米、或厘米应使用 ScaleMode 属性。

这些属性设置为正值将使坐标从上向下及从左向右增加。它们设置为负值将使坐标从下向上及从右向左增加。

这些属性和相关的 ScaleLeft 与 ScaleTop 属性的使用,可以建立起一个完全的带有正、负坐标的坐标系统。所有这四个 Scale 属性与 ScaleMode 属性按下面的方式进行交互作用:

把其它任何 Scale 属性设置为任何值都将使 ScaleMode 自动地设置为 0。ScaleMode 等于 0 是用户定义。

把 ScaleMode 设置为一个大于 0 的数,将使 ScaleHeight 和 ScaleWidth 的度量单位发生改变,并将 ScaleLeft 和 ScaleTop 设置为 0。另外,CurrentX 和 CurrentY 的设置值将发生改变以反映当前点的新坐标。
也可以在语句中使用 Scale 方法设置 ScaleHeight、ScaleWidth、ScaleLeft 和 ScaleTop 属性。

注意 ScaleHeight 和 ScaleWidth 属性与 Height 和 Width 属性是不一样的。

对于 MDIForm 对象,ScaleHeight 和 ScaleWidth 仅涉及窗体中未被 PictureBox 控件覆盖的区域。在 MDIForm 的 Resize 事件中应避免使用这些属性调整 PictureBox 的大小。

回答2:

Width 是永远以 Twip 为单位的。ScaleWidth 的单位取决于 ScaleMode 属性的设置。