Excel VBA基础教程:相对移动

发布: 2009-1-31 16:24  作者: webmaster  查看: 624次 共有0条评论

Excel 基础教程:相对移动

通过指定从当前位置应当移动的距离,使控件移动时,就是相对移动。下述语句是使用相对移动,将 txtField1 移动到它当前位置向右和向下 100 缇处:

txtField1.Move txtField1.Left + 100, txtField1.Top _
   + 100

本节显示 Blanker 示例应用程序中控件的移动。回弹演示程序,可使图片框沿着窗体对角线移动,所以图片框看起来象是从窗体边“反弹”回来一样。因为图象控件移动时重画引起抖动,所以该演示程序使用图片框而不用图象控件。

图 12.11 显示了 Blanker 应用程序 (DemoForm) 的主窗体和此例中用到的图片框。

图 12.11 Blanker 应用程序中的图片框 (picBall)

图片框的名称是 picBall。当从“选项”菜单中选定“Rebound”命令,然后单击“Start Demo”按钮后,该控件就开始沿着窗体移动。这个命令按钮的事件过程再调用 CtlMoveDemo 过程。

CtlMoveDemo 过程随机地从以下四个可能中选定一个开始方向:

  • 左上方

  • 右上方

  • 左下方

  • 右下方

picBall 图片框一直沿着选定方向移动,直到控件到达窗体四个边缘中的一个为止。然后图片框从它到达的边缘处改变方向;方向由变量Motion控制。例如, 当图片框正在向左上方移动时,该过程的这一部分,将改变Motion的值,以指挥代码让 picBall 向另一个方向移动。

下述语句来自于 Blanker 应用程序中的 CtlMoveDemo 过程:

Select Case Motion
Case 1
   '若是向左上方运动,则使控件移动'   20缇。picBall.Move picBall.Left - 20, picBall.Top - 20'若控件接触左边缘,则改变运动'向右下方。If picBall.Left <= 0 ThenMotion = 2'若控件接触上边缘,则改变运动'向左下方。ElseIf picBall.Top <= 0 ThenMotion = 4End If

应注意的是,使 picBall 移动的代码行,从它的 Left 和 Top 属性的当前值减 20 缇,以便建立控件的新位置。这可保证控件一直相对其当前位置移动。

控件移动的速度和光滑度,决定于 Move 方法中的缇(或其它单位)数。增加缇数,可提高移动的速度,却要降低移动的光滑度。降低缇数,要降低移动的速度,却可提高控件移动的光滑度。

详细信息关于 Move 方法的补充内容,请参阅《语言参考》的“Move 方法”。

大家对 Excel VBA基础教程:相对移动 的评论
最新PPT教程
最新评论
PPT问答