在vb中如何编一个代码实现模拟把文字一个一个显示出来,可以调剂快慢

 我来答
xlzzc
推荐于2016-10-21 · TA获得超过7301个赞
知道大有可为答主
回答量:4205
采纳率:50%
帮助的人:1441万
展开全部

“文字一个一个显示出来”可能有两种理解:一是像打字那样的效果,一个“接”一个地显示;二是显示当前字的时候刚刚显示的消失,就是一个代替一个地显示。 

Dim i As Integer

Dim L As Integer

Dim v As Integer

Private Sub Command1_Click()

i = 0

L = Len(Text1.Text)

'方法一:用text输入速度值,缺点:输入必须大于0,且必须不能输入数字以外的

v = Text2.Text * 1 '设置速度,单位为毫秒,乘1是强制转换为数字

    Timer1.Interval = v

    Timer1.Enabled = True

End Sub

Private Sub HScroll1_Change()

    '方法二:用滚动条控制速度,缺点:有上下限的局限

    v = HScroll1.Value

End Sub

Private Sub Text2_Change() '输入的有效性

    If IsNumeric(Text2.Text) And Text2.Text <> "0" Then

        v = Text2.Text * 1

    Else

    MsgBox "请输入大于0的数字!"

       Text2.Text = 500

    End If

End Sub

Private Sub Timer1_Timer() '动态效果

    Timer1.Interval = v '用于改变速度

    i = i + 1 '下一个字符

    showWord.Caption = Left(Text1.Text, i)

    If i = L Then Timer1.Enabled = False '必须的,否则出错

End Sub

追问
我知道了 谢谢
十字架勇士
2011-11-11 · 超过10用户采纳过TA的回答
知道答主
回答量:100
采纳率:0%
帮助的人:36.1万
展开全部

插入时间控件和一个标签

你可以在Timer1.Interval中调节快慢

Private Sub Form_Load()

Timer1.Interval = 1000

End Sub

Private Sub Timer1_Timer()

Dim i As String

i = Label1.Caption

Label1.Caption = "你"

Select Case Len(i)

Case 1

i = "你会"

Label1.Caption = "你会"

Case 2

i = "你会进"

Label1.Caption = "你会进"

Case 3

i = "你会进步"

Label1.Caption = "你会进步"

Case 4

i = "你会进步,一"

Label1.Caption = "你会进步,一"

Case 6

i = "你会进步,一步"

Label1.Caption = "你会进步,一步"

Case 7

i = "你会进步,一步,一"

Label1.Caption = "你会进步,一步,一"

Case 9

i = "你会进步,一步,一步"

Label1.Caption = "你会进步,一步,一步"

Case 10

i = "你会进步,一步,一步,相"

Label1.Caption = "你会进步,一步,一步,相"

Case 12

i = "你会进步,一步,一步,相信"

Label1.Caption = "你会进步,一步,一步,相信"

Case 13

i = "你会进步,一步,一步,相信自"

Label1.Caption = "你会进步,一步,一步,相信自"

Case 14

i = "你会进步,一步,一步,相信自己"

Label1.Caption = "你会进步,一步,一步,相信自己"

Case 15

i = "你会进步,一步,一步,相信自己!"

Label1.Caption = "你会进步,一步,一步,相信自己!"

End Select

If Len(i) = 16 Then

Timer1.Enabled = False

End If

End Sub

你自己运行下看看符不符合你的要求!

追问
我的意思是  我们输入一段话 然后按指定的速度(或可以调速)来把字显示出来
追答
这是借鉴三楼的兄台:

Dim ss As String, i As Integer

Private Sub Form_Load()

HScroll1.Min = 40
HScroll1.Max = 2000
HScroll1.LargeChange = 100
HScroll1.SmallChange = 50
Do While Len(Label1.Caption) < Len(ss)
Timer1_Timer

Loop

End Sub

Private Sub HScroll1_Change()
Timer1.Interval = HScroll1.Value

End Sub

Private Sub Timer1_Timer()
ss = Text1.Text
i = i + 1
Label1.Caption = Left(ss, i)

End Sub
现在只能到这种效果,只能查看一次!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
windbeee
2011-11-11 · TA获得超过247个赞
知道小有建树答主
回答量:490
采纳率:0%
帮助的人:515万
展开全部
vb6?
这样:计时器1个(timer1),文本框(text1)一个
代码:
Dim E As String
Private Sub Form_Load()
Dim i As Double
Randomize
For i = 1 To 9
E = E & CStr(Rnd * 1000)
Next i
Timer1.Interval = 1
Timer1.Enabled = True
Text1.Text = ""
End Sub
Private Sub Timer1_Timer()
If Len(E) >= 1 Then
Text1.Text = Text1.Text & Left(E, 1)
E = Right(E, Len(E) - 1)
End If
End Sub

速度可以调interval
更多追问追答
追问
他不能运行啊
追答
这个,不可能把。我调试的是好的,可以发上错误图啊。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
就九佳
2011-11-11 · TA获得超过142个赞
知道答主
回答量:178
采纳率:0%
帮助的人:201万
展开全部
可以利用Timer,Label,和ScrollBar来实现。
以下代码提供参考:
Dim ss As String, i As Integer
Private Sub Form_Load()
ss = "abcdefghijklmnopqistuvwxyz"
Timer1.Enabled = True
HScroll1.Min = 200
HScroll1.Max = 800
End Sub
Private Sub HScroll1_Change()
Timer1.Interval = HScroll1.Value
End Sub
Private Sub Timer1_Timer()
i = i + 1
If i = Len(ss) Then i = 1
Label1.Caption = Left(ss, i)
End Sub
追问
能不能加上一张图啊,还有ScrollBar事什么控件啊?我找不到啊
追答
HScrollBar,控件栏左起向下第6个。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式