我是一个新的程序员,从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
我没有收到任何错误,但是当我运行代码并按下按钮时,它立即变为最后一行。我知道为什么,我只是不知道任何代码(并且找不到任何代码)如何使文本按下每行按下一行而不是一次完成。
希望这是有道理的,我希望有一种方法可以做到这一点。谢谢你的帮助!
答案 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