VB.NET - 使用多个表单

时间:2015-08-22 21:43:02

标签: vb.net forms user-interface

我试图创建一个登录窗口和一个主窗口。问题是当我关闭登录表单并显示主窗口时,整个程序停止。

登录表单:

Imports System.IO
Imports System.Text
Imports System.Net

Public Class frmLogin

    Dim address As String = "http://puu.sh/jKJ**Zq/d613de****29.txt"
    Dim client As WebClient = New WebClient()

    Private Sub frmLogin_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        'frmMain.Close()
    End Sub

    Private Sub frmLogin_Close(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Me.FormClosed
        frmMain.Show()
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        If attemptLogin() Then
            MsgBox("Login Successful")
            Me.Close()
            'frmMain.Show()
        Else
            MsgBox("Username or password is incorrect")
        End If

    End Sub

    Private Function attemptLogin()
        Dim reader As StreamReader = New StreamReader(client.OpenRead(address))

        Dim line As String
        Dim username As String
        Dim password As String

        line = reader.ReadLine()

        Do While Not line Is Nothing

            username = line.Split(":")(0)
            password = line.Split(":")(1)

            If (username = TextBox1.Text And password = TextBox2.Text) Then
                Return True
            End If

            line = reader.ReadLine()

        Loop

        reader.Close()
        client.Dispose()

        Return False

    End Function

    Private Function Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

        Dim client As WebClient = New WebClient()
        Dim reader As StreamReader = New StreamReader(client.OpenRead(address))
        Dim line As String

        line = reader.ReadLine

        Do While Not line Is Nothing
            line = reader.ReadLine()
        Loop

        reader.Close()
        Dim writer As StreamWriter = New StreamWriter(client.OpenRead(address))
        writer.Write(TextBox1.Text & ":" & TextBox2.Text)

        writer.Close()
        client.Dispose()

        Return False

    End Function

End Class

主窗口:

Public Class frmMain

    Private Sub frmMain_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Me.Load
        'frmMain.Close()
    End Sub

    Private Sub frmMain_closed(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Me.FormClosing

    End Sub

End Class

我是VB.NET的新手,所以很抱歉缺乏知识/丑陋的编码。我曾经习惯用Java编写GUI。

1 个答案:

答案 0 :(得分:0)

您需要将“关闭模式”设置为“最后一个表单关闭时”。

您可以通过转到我的项目然后单击应用程序(第一个选项卡)来找到此设置。 然后,您可以在底部找到设置。