如何使按钮做两件事后

时间:2013-11-25 16:10:28

标签: vb.net button text

我是一个新的程序员,从Visual Basic开始,我正在尝试制作一个视觉小说,但我遇到了一些问题。

我正在尝试按下按钮时将文本更改为下一行文本。这是我正在使用的一些示例代码。 'DisplayText'是包含语音的地方,'ButtonNext'是转到下一段文本的按钮。

Private Sub ButtonNext_Click(sender As Object, e As EventArgs) Handles ButtonNext.Click
    If DisplayText.Text = "" Then
        DisplayText.Text = "Test"
    End If
End Sub

这个作品。但是,我想要它,所以相同的按钮可以在“测试”行之后转到另一行。我在同一个私人子中使用它:

If DisplayText.Text = "Test" Then
    DisplayText.Text = "Second Test"
End If

我没有收到任何错误,但是当我运行代码并按下按钮时,它立即变为最后一行。我知道为什么,我只是不知道任何代码(并且找不到任何代码)如何使文本按下每行按下一行而不是一次完成。

希望这是有道理的,我希望有一种方法可以做到这一点。谢谢你的帮助!

4 个答案:

答案 0 :(得分:1)

这将是您应该使用Case语句而不是If语句的主要示例。

Select Case DisplayText.Text

    Case ""
        DisplayText.Text = "Test"

    Case "Test"
        DisplayText.Text = "Second Test"

End Select

答案 1 :(得分:0)

Private Sub ButtonNext_Click(sender As Object, e As EventArgs) Handles ButtonNext.Click
    If DisplayText.Text = "" Then
        DisplayText.Text = "Test"
    Else If DisplayText.Text = "Test" Then
        DisplayText.Text = "Second Test"
    End If
End Sub

问题是你的DisplayText变为“Test”并立即进入下一个If语句,然后检查它是否为“Test”,该阶段为真。使用Else语句可以防止出现此问题。

答案 2 :(得分:0)

您有两个If语句,如下所示:

If DisplayText.Text = "" Then

DisplayText.Text = "Test"

End If

If DisplayText.Text = "Test" Then

DisplayText.Text = "Second Test"

End If

执行第一个If语句,将文本更改为“Test”。然后执行第二个If语句:如果文本是“Test”,则将其更改为“Second Test”。因此,如果您输入带有文本框空白的子项,它将更改为“测试”,然后在您甚至可以看到它之前,它将更改为“第二次测试”。

解决方案是使用Else If语句:

If DisplayText.Text = "" Then

DisplayText.Text = "Test"

Else If DisplayText.Text = "Test" Then

DisplayText.Text = "Second Test"

End If

如果第一个条件(If)不成立,则只会输入第二个DisplayText.Text = ""语句。

答案 3 :(得分:0)

尝试在系统中使用线程在文本发生变化之前暂停文本。

Private Sub ButtonNext_Click(sender As Object, e As EventArgs) Handles ButtonNext.Click
    If DisplayText.Text = "" Then
    DisplayText.Text = "Test"
End If

System.Threading.Thread.Sleep(1000)

If DisplayText.Text = "Test" Then
    DisplayText.Text = "Second Test"
End If
End Sub