Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

[5分]为什么窗体的宽度还用变量存之?

殷小宝  发表于:2012-05-15 00:15:53  
复制

 窗体动画的代码如下:

Public gfrmwidth As Integer
Private Sub Form_Open(Cancel As Integer)
    gfrmwidth = Me.Width
End Sub

Private Sub Form_Timer()
    Static intPic As Integer
    Select Case intPic
    Case Is = 1
        Me!Visible1.picturedata = Me!hidden1.picturedata
    Case Is = 2
        Me!Visible1.picturedata = Me!Hidden2.picturedata
    Case Else
    End Select
    If intPic = 2 Then intPic = 0
    intPic = intPic + 1   
'1与2轮流交替,200ms触发一次
    If (Me!Visible1.Left > gfrmwidth) Then Me!Visible1.Left = 0
    Me!Visible1.Left = Me!Visible1.Left + 200

End Sub

为什么将If (Me!Visible1.Left > gfrmwidth) 改为If (Me!Visible1.Left > Me.Width)后, 图片到了右侧尽头不再从左边出来了呢?难道窗体的宽度还能变化?我不知其理,望老师予以释疑。甚感!

 

Top
叶海峰 发表于:2012-05-15 08:47:54

Width 属性

参阅应用于示例特性

使用 HeightWidth 属性可以将对象的大小调整为指定的尺寸。Integer 型,可读写。

expression.Width

expression      必需。返回“应用于”列表中的一个对象的表达式。

说明

Width 属性仅应用于窗体和报表,不能应用于窗体节和报表节。

用当前度量单位输入所需要的宽度数字。如果要使用不同于 Windows“控制面板”的“区域选项”对话框中的度量单位,请自行指定单位,如厘米或英寸(例如,5 厘米或 3 英寸)。Width 属性设置的值必须在 0 到 22 英寸(55.87 厘米)之间。

可以使用对象的属性表Visual Basic 来设置该属性。

对于控件,可以使用默认控件样式或在 Visual Basic 中使用 DefaultControl 方法来设置该属性的默认值。

在 Visual Basic 中,使用数值表达式设置该属性的值。值以为单位表示。

对于报表控件,在打印或预览报表时,只能使用宏或是使用一个节的 OnFormat 事件属性设置中所指定的事件过程来设置它的 Width 属性。

开始打印后,就不能再设置对象的这一属性。

当创建控件或调整控件大小时,或在窗体“设计”视图报表“设计”视图中调整窗口大小时,Microsoft Access 会自动设置 Width 属性。

窗体和报表的宽度是从边框的内侧开始度量的。控件的宽度是从边框的中心开始度量的。因此边框宽度各不相同的控件能够正确对齐。窗体和报表的页边距在“页面设置”对话框中设置,单击“文件”菜单上的“页面设置”命令即可打开该对话框。

注释  如果要设置对象的左端和顶端的位置,请使用 LeftTop 属性。



殷小宝 发表于:2012-05-15 09:10:03
1楼回答不明确,我问的是为什么设为 (Me!Visible1.Left > Me.Width)不行,不过还得感谢叶海峰老师的回复.难道动画运行时,窗体处于不活动状态,无法得知窗体的宽度?因此图片不能回到左边?

叶海峰 发表于:2012-05-15 21:33:20

me.width会随着控件的移动而自动调整变大,width属性说明清楚说到这点了.你用.left>me.width判断,当visible1往右移200,me.width就增加200,直到width超出最大限制.



殷小宝 发表于:2012-05-16 01:06:09

用Debud.Print测试的结果是:Me.Width为:

9467  9467  9467  9637  9837  10637  10837  11037  11237  11437 11637  11637  11637  11637

说明窗体的宽度是在变化,每次加200,直至11637为止。叶老师回答的完全正确。谢谢叶老师了。



殷小宝 发表于:2012-05-16 01:10:09
但表面上看不出来窗体的宽度的变化。

叶海峰 发表于:2012-05-16 08:23:46
将窗体的滚动条设成水平滚动看看

总记录:6篇  页次:1/1 9 1 :