vb编程中让窗体标题栏滚动的程序编写

书上写的是timer的办法PrivateSubTimer1_Timer()Form1.Caption=Space(20-j)&"查找与替换例"j=j+1Ifj>20The... 书上写的是timer的办法

Private Sub Timer1_Timer()
Form1.Caption = Space(20 - j) & "查找与替换例"
j = j + 1
If j > 20 Then j=0
End Sub
但是这个真的没有办法滚动,间隔设置的500,窗体大小6000*6000
于是我自己写了if语句,但是总说我缺少if
Private Sub Timer1_Timer()
If Me.ScaleLeft < 6000 Then Form1.Caption = " " + Form1.Caption
ElseIf Me.ScaleLeft >= 6000 Then Form1.Caption = "查找与替换例"
End If
End If
End Sub
如果把两句if拆开,VB只执行第一句,不再执行回去的程序。。。
求解!
展开
 我来答
网海1书生
科技发烧友

2015-04-05 · 擅长软件设计、WEB应用开发、小程序
网海1书生
采纳数:12311 获赞数:26228

向TA提问 私信TA
展开全部

第一个程序是可以执行的,只是必须把j设为全局变量或静态变量,下面是静态变量的方法:

Private Sub Timer1_Timer()
Static j As Integer
Form1.Caption = Space(20 - j) & "查找与替换例"
j = (j + 1) Mod 20
End Sub

你自己搞的那个从思路和语法上都是完全错了,而且错得非常离谱,错到姥姥家了!

仅从语法上来看,应该这么改:

Private Sub Timer1_Timer()
   If Me.ScaleLeft < 6000 Then
       Form1.Caption = " " + Form1.Caption
   ElseIf Me.ScaleLeft >= 6000 Then
       Form1.Caption = "查找与替换例"
   End If
End Sub

这样就没语法错误了,但正如我前面所述,由于思路错误,这段程序仍然是无法正常运行的。你究竟理解 Me.ScaleLeft 是什么意思么?

北方计算机学校
2015-04-05 · TA获得超过376个赞
知道小有建树答主
回答量:51
采纳率:100%
帮助的人:63.1万
展开全部

你的代码中多出一个 End If,改成下面这样试试吧:

Private Sub Timer1_Timer()
   If Me.ScaleLeft < 6000 Then
      Form1.Caption = " " + Form1.Caption
   ElseIf Me.ScaleLeft >= 6000 Then
      Form1.Caption = "查找与替换例"
   End If
End Sub

 如果还有问题请继续追问哦

追问
可以显示了,但是滚过去就不再回来了,怎么感觉还是没有执行
ElseIf Me.ScaleLeft >= 6000 Then
Form1.Caption = "查找与替换例"
追答

Me.ScaleLeft 是窗体坐标系统中,窗体左边的横坐标值。

这个值应该与你的“标题滚动”没有任何关系。


在你的程序中,这个值应该是始终不变的。

所以,

ElseIf Me.ScaleLeft >= 6000 Then
      Form1.Caption = "查找与替换例"

应该不会被执行的。


你可以试一下如下代码:

Private Sub Timer1_Timer()
   If len(Form1.Caption) < 30 Then
      Form1.Caption = " " + Form1.Caption
   Else
      Form1.Caption = "查找与替换例"
   End If
End Sub
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式