为什么form1在关闭form1时也会关闭form2?

时间:2013-06-16 12:29:20

标签: .net vb.net winforms

我在VS-2008中创建了两个表单,login_F和switchBoard_Flogin_F是用户的登录表单,用于验证用户的登录信息,然后从函数中打开witchBoard_F

每当login_F关闭时,它也会关闭switchBoard_F。我希望s witchBoard_F始终处于打开状态并关闭login_F,但在关闭switchBoard_F时,我不知道哪个代码正在关闭login_F?< / p>

这是代码:

 Private Sub SaveUSerInfo()


    Dim cmd As New SqlCommand("sp_InsertLogReg", conn)
    cmd.CommandType = CommandType.StoredProcedure
    cmd.Parameters.Add(New SqlParameter("@EmpID", My.Settings.UserID))
    cmd.Parameters.Add(New SqlParameter("@sHostName", System.Net.Dns.GetHostName()))
    cmd.Parameters.Add(New SqlParameter("@sUserName", System.Environment.UserName()))
    cmd.Parameters.Add(New SqlParameter("@ApplicationName", My.Settings.gAppName))

    'cmd.ExecuteNonQuery()

    Dim newID As Integer = CInt(cmd.ExecuteScalar()) 'return LogRegID

    'get UserGroup
    Dim strSQL As String = "SELECT tblKOCEmp.EmpID, tblKOCEmp.Name, tblOrg.GroupName, tblOrg.Active"
    strSQL = strSQL + " FROM tblKOCEmp "
    strSQL = strSQL + " INNER JOIN tblOrg ON dbo.tblKOCEmp.OrgCode = dbo.tblOrg.OrgCode"
    strSQL = strSQL + " WHERE (dbo.tblOrg.Active = 1)"
    strSQL = strSQL + " AND (tblKOCEmp.EmpID =" + My.Settings.UserID + ")"

    cmd = New SqlCommand(strSQL, conn)

    cmd.CommandType = CommandType.Text
    Dim dr = cmd.ExecuteReader(CommandBehavior.CloseConnection)
    If dr.HasRows Then
        While dr.Read
            If Not IsDBNull(dr.Item("Name")) Then
                My.Settings.UserName = (dr.Item("Name"))
                My.Settings.GroupName = (dr.Item("GroupName"))
            End If
        End While
    End If
    dr.Close()

    My.Settings.LogRegID = newID 'store LogRegID to mySettings

    switchBoard_F.Show()
    login_F.Close()

End Sub

3 个答案:

答案 0 :(得分:0)

我对你的案子不太确定..但我认为你可以将switchBoard_F表格作为主要表格。

当您拨打login_F表单时,您可以隐藏主表单..因此,当用户输入正确的密码时,您只需关闭login_F表单..如果没有,您可以关闭它们..

答案 1 :(得分:0)

您应该使用switchBoard_F.ShowDialog();代替switchBoard_F.Show();

顺便说一句: 除非在项目属性

中设置不同,否则关闭主窗体将始终导致关闭应用程序

答案 2 :(得分:0)

确保登录第二个表单不是父表单

或者您可以使用loginform.hide和第二种形式的onclosing事件,secondform.close