【问题标题】:Form closed after run a function运行函数后表单关闭
【发布时间】:2017-11-19 08:49:49
【问题描述】:

起初很抱歉英语不好! 我在 Vb.Net 中有一个程序,我使用一个模块来检查许可证,如下所示:

Public Sub main()
    Dim th As Thread = New Thread(AddressOf f1show)
    Try
        Dim cn As New SqlConnection("something")
        Dim query As New SqlCommand("SELECT * FROM Test WHERE id = 1")
        Dim dr As SqlDataReader
        Dim dbtext As String = ""
        query.Connection = cn
        Try
            cn.Open()
            dr = query.ExecuteReader()
        Catch
            MsgBox("notOk")
            Form3.ShowDialog()
        End Try
        If dr.HasRows Then
            Do While dr.Read()
                dbtext = dr("TEXT1")
            Loop
        Else
            Form3.ShowDialog()
        End If
        cn.Close()
        If dbtext <> "" Then
            Dim dbwords As String() = zn.Custom_Decrypt(dbtex)
            Dim dbword As String = dbwords(0)
            If ZN.Custom_Decrypt(dbword) = "a" Then
                Form1.ShowDialog()
                'this where main form show and license is Ok
            Else
                Form3.ShowDialog()
            End If
        End If
    Catch
        Form3.ShowDialog()
    End Try
End Sub

在上面的代码中,form1 是主表单,form3 是许可证表单,Zn 是我的模块 当数据库中存在许可证时,它可以正常工作并显示 form1 但是在form1中,当我使用一个功能(任何功能)应用程序退出时,我没有任何理由但是当我将启动更改为form1时,功能正常并且可以正常工作 我该做什么 ?有人建议我改变启动,但问题没有解决

【问题讨论】:

  • 检查您的关闭模式是否未设置为“当启动窗体关闭时”,因为它看起来像您将主窗体显示为对话框,这意味着它将导致整个应用程序退出一旦主窗体对话框关闭

标签: vb.net winforms visual-studio


【解决方案1】:

tnx 我解决了这个问题 它需要使用 application.run 代码 我将 Form3.ShowDialog() 更改为 application.run(new form3())

Form3.ShowDialog() ===>> application.run(new form3())

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-07
    • 2015-12-21
    • 1970-01-01
    相关资源
    最近更新 更多