活见鬼了大家来帮帮
搞一个简单的进度条
winform 程序
Form1.vb
是一个登陆页面
Form2.vb
显示一个进度条
代码如下:
Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim i As Integer = 0
ProgressBar1.Value = 0
ProgressBar1.Minimum = 0
ProgressBar1.Maximum = 100
For i = 1 To 100
ProgressBar1.Value += 1
System.Threading.Thread.Sleep(100)
Next
End Sub
现在是我验证用户通过后在form2显示“正在加载数据”的一个进度条
可是我却看不到进度条一个格子一个格子往前走的样子。
等我看到的时候,进度条已经到了头了。
我晕死
大家说说这是什么原因
[解决办法]
这是正常的。
因为你将进度条的程序放在了Load事件上
当Load事件结束时才显示窗体,所以显示的是走完的
建议如下:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Form2.Show() System.Threading.Thread.Sleep(200) With Form2 Dim i As Integer = 0 .ProgressBar1.Value = 0 .ProgressBar1.Minimum = 0 .ProgressBar1.Maximum = 100 For i = 1 To 100 .ProgressBar1.Value += 1 System.Threading.Thread.Sleep(100) Next End With End Sub
[解决办法]
就是楼上说的原因。。。
[解决办法]
放到 Paint 这个事件中
Private Sub Form2_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Me.Paint
End Sub
[解决办法]
楼上几位的方法都可行,我再给一种方法:
Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Form2.show() '强制显示Form2
Dim i As Integer = 0
ProgressBar1.Value = 0
ProgressBar1.Minimum = 0
ProgressBar1.Maximum = 100
For i = 1 To 100
ProgressBar1.Value += 1
System.Threading.Thread.Sleep(100)
Next
End Sub
[解决办法]
都是牛人, 偶不会VB