Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 从form_load事件处理程序显示表单并显示progressbar_Vb.net - Fatal编程技术网

Vb.net 从form_load事件处理程序显示表单并显示progressbar

Vb.net 从form_load事件处理程序显示表单并显示progressbar,vb.net,Vb.net,下面是一些我不知道如何在.Net中正确处理的事情,但我确信一定存在某种解决方案 我有一个像对话框一样打开的表单,在表单加载下我有一些数据检查,然后我调用一个可能需要10秒处理的过程。 在这段时间里,我的表单直到我的流程没有完成才会显示,我可以在我的主表单中看到一些“菜单垃圾”,而不是正在处理的新表单中的progressbar 我看到的第二件事可能接近第一个问题是,在我的一些表单中,当显示某个进程的结果时,progressbar并没有结束,但程序(对于progressbar)被正确地生成。这就像p

下面是一些我不知道如何在.Net中正确处理的事情,但我确信一定存在某种解决方案

我有一个像对话框一样打开的表单,在表单加载下我有一些数据检查,然后我调用一个可能需要10秒处理的过程。
在这段时间里,我的表单直到我的流程没有完成才会显示,我可以在我的主表单中看到一些“菜单垃圾”,而不是正在处理的新表单中的progressbar

我看到的第二件事可能接近第一个问题是,在我的一些表单中,当显示某个进程的结果时,progressbar并没有结束,但程序(对于progressbar)被正确地生成。这就像progressbar在某个异步任务中工作一样

如何解决这些问题并在程序开始之前显示我的表单? 如何让progressbar显示可靠的值?或者我可以说它在VB6中工作更好

对于第一个问题,我尝试:

Me.Activate
or 
Me.Refresh

Call myProcedureWithProgressBar(myArgs)
从表单加载但没有结果。

当我的过程完成时显示表单,但应在之前显示。

事件
Form\u Load
在显示
表单之前执行代码。您可以创建一个
计时器
,并使用它在表单加载后自动执行代码:

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

Private Sub OnFormLoaded(sender As Object, e As EventArgs) Handles Timer1.Tick
    Timer1.Enabled = False

    '...
End Sub
确保像我一样停止方法上的计时器,并确保防止用户执行可能干扰执行的操作(单击按钮、关闭表单…)。希望能有帮助


关于
ProgressBar
问题,如果没有更多信息或代码,我不知道会出现什么问题。也许你可以试试这样的东西:

Public Sub UpdateProgressBar(ByVal cont As Integer, ByVal max As Integer, ByRef objTarget As ProgressBar)
    Dim dProgress As Double = cont * 100 / max
    objTarget.Value = CInt(dProgress)
    objTarget.Refresh()
End Sub

有趣的把戏。我不明白它是怎么工作的,但它是工作的。我从OnFormLoad开始我的进程,在禁用计时器之后,程序的行为正常,就像它应该的那样。现在,如何处理progressbar。大约是50%,而不是100%?问题是为了显示进程结果,我必须隐藏它们。这是一个让它显示为“应该”的技巧吗?我不知道为什么你的
ProgressBar
工作不正常。也许是你做的事。你们应该分享和它相关的代码,以便人们可以帮助你们。好的,谢谢,我会尝试准备一个可以接受的例子,以便寻求帮助。这一个太大,和程序的其他部分联系太紧密,不适合在这里发布。我尝试了Refresh(),但仍然无法正常工作。使用一个可能对您有用的函数更新了我的答案