Visual Basic 2015(加载后按任意键)

时间:2018-09-14 03:25:29

标签: vb.net

我想为我的vb寻求帮助。我正在尝试创建一个加载屏幕,当进度条达到100时,将出现一条消息,但没有消息框显示(按任意键继续),就像在游戏中一样。我做了我自己的编码,但是它直接跳到了form3,并且控制台没有出现。

    `ProgressBar1.Increment(1)
    If ProgressBar1.Value = 100 Then
        Console.ForegroundColor = ConsoleColor.White
        Console.Write("Press any key to continue")
        Console.ReadLine()
    Else
        Form3.Show()
        Me.Hide()
    End If`

2 个答案:

答案 0 :(得分:0)

为了达到您的期望,这可能是一种解决方案:

  • 不要使用MsgBox,而是创建一个看起来像MsgBox的新表单,并在进度条已满时调用它

这是代码的主要类(称为MsgBox like形式的类):

Public Class Main

    Private Sub Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button.Click
        progressBarIncrement()
        ProgressBar1.Visible = False
    End Sub

    Private Sub progressBarIncrement()
        ProgressBar1.Increment(1)
        Thread.Sleep(20) '20 milliseconds of sleep
        If ProgressBar1.Value = 100 Then
            FormPressKey.Show()
            Exit Sub
        Else
            progressBarIncrement()
        End If
    End Sub

End Class

这是第二种形式,当进度条完成时会调用它!

Private Sub Form1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles Me.KeyPress
    Me.Close()
    GC.Collect()
End Sub

您会注意到,我创建了一个递归函数,以增加ProgressBar value并在每次迭代中进行检查。

为了模拟加载进度条,我还在每个增量之间添加了一些睡眠。

NB (如果要使用Thread.Sleep(time_in_milliseconds),则必须在代码Imports System.Threading的顶部添加

答案 1 :(得分:-1)

尽管我的代码有毛刺,但我还是设法做到了,谢谢您的帮助。 :)

Public Class Form2

Private Sub Form2_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    Timer1.Start()
End Sub

Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick

    PictureBox2.Visible = False
    Label1.Visible = False
    ProgressBar1.Increment(1)

    If ProgressBar1.Value = 100 Then
        Label1.Visible = True
        Label2.Visible = False
        ProgressBar1.Visible = False
        PictureBox1.Visible = False
        PictureBox2.Visible = True
    End If
End Sub

Private Sub Form2_KeyPress(sender As Object, e As KeyPressEventArgs) Handles Me.KeyPress

    If Keys.Space Then
        Form3.Show()
        Me.Hide()
    End If

End Sub
End Class