加载超过1个表单的问题 - VB.net

时间:2016-08-17 11:15:46

标签: vb.net

我搜索了Stackoverflow和Google关于我的问题的解决方案,但没办法!所以现在是时候问自己的问题了。

我正在使用C#和VB.net制作一个大项目(不是我们的主题-_-)

我打开这个问题来询问VB.net问题

我试图加载很多表单,但在同一时间,隐藏上一个表单!

首先,请点击 Form1

Private Sub Timer4_Tick(sender As Object, e As EventArgs) Handles Timer4.Tick
        If Label1.Text = "Setting profile.dat=Roblox.AuthAccess ..." Then
            Form2.Show()
            Me.Hide()
        End If
End Sub

这是一个计时器,用于检测Label1的文本是否为"设置profile.dat = Roblox.AuthAccess ......"它必须显示Form2然后关闭Form1(这是完美的工作): - )

窗体2

Private Sub WebBrowser1_DocumentCompleted(sender As Object, e As WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted
        If WebBrowser1.Url.ToString().Contains("home") Then
            Me.Hide()
            Form3.Show()
        End If
End Sub

这将检测" WebBrowser1 "的网址是否包含" home"然后它将隐藏Form2并显示Form3(此处开始的问题!!!)

问题是 :它显示Form3然后在2秒后,Form2再次返回(现在两个都打开一次)并且它们将永远打开和关闭(我通过转到任务管理器并结束" vshost32.exe")

来关闭它们

Form3

Public Class Form3

    Private Sub Form3_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Form2.Close()
    End Sub

    Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
        Form4.Show()
    End Sub
End Class

2 个答案:

答案 0 :(得分:0)

非常感谢@jmcilhinney:)

我从没想过在工作结束后停止每一个“计时器”!

刚刚将Timer4_Tick替换为:

Private Sub Timer4_Tick(sender As Object, e As EventArgs) Handles Timer4.Tick
        If Label1.Text = "Setting profile.dat=Roblox.AuthAccess ..." Then
            Me.Hide()
            Form2.Show()
            Timer4.Stop()
        End If
End Sub

最后,我通过添加 Timer4.Stop()来解决这个问题。

答案 1 :(得分:0)

实际上,停止计时器仍然不是一个稳定的解决方案,禁用它们会更好。

只需将Timer4.Stop()替换为Timer4.Enabled = False