vb中怎样使按钮每点击一次位移一次
在form1中画一个命令按钮,编写过程使程序每点击按钮一次,按钮向左移动100,要求程序中不能使用变量,事件过程中只能写一条语句。
再说点废话,我当时是这样想的,command1.left = left-100 发现不行,只能移动一次,又试着加do…loop,结果vb崩溃。又试一次直接跑到最右边边框,,最后想起来没有关联鼠标点击的次数,可使怎么关联点击次数呢?还想问一下,如果我设方程,例如 我用dim声明了x为ingteger,x=什么什么,这算不算我使用了变量? 展开
通过检测和更改按钮的Left属性,就可以实现每一次按钮的点击并让它移动。
由于可能会有其它的控件引起遮挡,所以下面的代码让它左右移动:
Private Sub Command1_Click() '交替左右移动
If Command1.Left Mod 2 = 0Then
Command1.Left = Command1.Left - 1001 '先左移
Else
Command1.Left = Command1.Left + 1001 ‘再右移’
End If
End Sub
Private Sub Form_Load() '初始时让按钮的Left属性为一个偶数值
Command1.Left = Command1.Left + Command1.Left Mod 2
End Sub
下面的代码让它循环移动:
Private Sub Command1_Click()
If Command1.Left + 500 > Form1.Width - Command1.Width Then
Command1.Left = 0 '超出边界就回到最左端
Else
Command1.Left = Command1.Left + 500 '未超边界就右移
End If
End Sub
这样就可以了,你直接用left,VB会以为你调用的是me.left,这里的me,指的是窗体form1
直接写一个left 在这里等同于form1.left
你不必在意这个me关键字,你现在还不需要了解,总之,在使用对象的属性之前,要写成
对象.属性
不然VB不知道你到底调用的是谁的left属性
dim x as integer
这就是定义了变量,当然算使用了。
另外,command1.left=command1.left - 100
这句话是有问题的,一旦你点击次数多了,command1.left属性就成为负值了,也会出错的。
Command1.Left = Command1.Left - 100
End Sub
这个是可以的,我已经测试过没问题啊。只是当它移到最左边的时候,就看不到了。 可以再加上一句
If Command1.Left < 0 Then Command1.Left = Form1.Width - Command1.Width - 100
这样,当按钮左边到达窗口外时,整个按钮又到窗体的右边。
或者
command1.move command1.left-100
直接用left是不行的,要指明对象