我想为我的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`
答案 0 :(得分:0)
为了达到您的期望,这可能是一种解决方案:
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