Vb.net Visual Basic,开放式窗体

Vb.net Visual Basic,开放式窗体,vb.net,Vb.net,我正在尝试制作一个程序,要求用户登录,如果输入了正确的用户名和密码,则为该用户打开一个表单。我刚才的做法是用户名存储在一个变量中,我想知道如何在表单名称中使用变量中的文本,例如: UserName=User1然后 FrmUser1.show 用户名=JohnSmith然后 FrmJohnSmith.show 以下是我目前掌握的代码摘录: Dim Path As String = "Account_File.text " Dim Read_File() As String = Fi

我正在尝试制作一个程序,要求用户登录,如果输入了正确的用户名和密码,则为该用户打开一个表单。我刚才的做法是用户名存储在一个变量中,我想知道如何在表单名称中使用变量中的文本,例如:

UserName=User1然后

FrmUser1.show

用户名=JohnSmith然后

FrmJohnSmith.show

以下是我目前掌握的代码摘录:

    Dim Path As String = "Account_File.text "
    Dim Read_File() As String = File.ReadAllLines(Path)
    Dim NoOfLines As Integer = Read_File.Length
    Dim UserName(NoOfLines) As String
    Dim Password(NoOfLines) As String
    Dim LastNonEmpty As Integer = -1
    Dim InputUserName As String = ""
    Dim InputPassword As String = ""

    If TxtUserName.Text = "" Then
        MsgBox("Please enter a username.")
        GoTo InvalidDetails
    Else
        InputUserName = TxtUserName.Text
    End If

    If TxtPassword.Text = "" Then
        MsgBox("Please enter a Password.")
        GoTo InvalidDetails
    Else
        InputPassword = TxtPassword.Text
    End If

    For i = 0 To NoOfLines
        Dim SplitString() As String = Split(Read_File(i))
        For j As Integer = 0 To SplitString.Length - 1
                If SplitString(j) <> "" Then
                LastNonEmpty += 1
                SplitString(LastNonEmpty) = SplitString(j)
            End If
        Next
        ReDim Preserve SplitString(LastNonEmpty)
        LastNonEmpty = -1
        UserName(i) = SplitString(0) 
        Password(i) = SplitString(1)
    Next

    For i = 0 To NoOfLines
        If UserName(i) = InputUserName And Password(i) = InputPassword Then
            frm.show()
        Else
            MsgBox("Either the username or password is incorrect.")
        End If
    Next
Dim路径为String=“Account\u File.text”
Dim Read_File()作为字符串=File.ReadAllLines(路径)
Dim NoOfLines As Integer=读取文件长度
将用户名(NoOfLines)设置为字符串
将密码(NoOfLines)设置为字符串
Dim LastNonEmpty作为整数=-1
Dim InputUserName As String=“”
Dim InputPassword As String=“”
如果TxtUserName.Text=”“,则
MsgBox(“请输入用户名”)
转到残疾人医院
其他的
InputUserName=TxtUserName.Text
如果结束
如果TxtPassword.Text=”“,则
MsgBox(“请输入密码”)
转到残疾人医院
其他的
InputPassword=TxtPassword.Text
如果结束
对于i=0到NoOfLines
Dim SplitString()作为字符串=拆分(读取文件(i))
对于j,整数=0表示拆分字符串。长度-1
如果拆分字符串(j)”,则
LastNonEmpty+=1
SplitString(LastNonEmpty)=SplitString(j)
如果结束
下一个
重拨保留拆分字符串(LastNonEmpty)
LastNonEmpty=-1
用户名(i)=拆分字符串(0)
密码(i)=拆分字符串(1)
下一个
对于i=0到NoOfLines
如果用户名(i)=输入用户名和密码(i)=输入密码,则
frm.show()
其他的
MsgBox(“用户名或密码不正确。”)
如果结束
下一个
一些示例代码:

    Dim formname = "Form" + TxtUserName.Text
    Dim typename = Me.GetType().Namespace + "." + formname
    Dim type = Me.GetType().Assembly.GetType(typename)
    If type IsNot Nothing Then
        Dim form = CType(Activator.CreateInstance(type), Form)
        form.Show()
    End If

它假定所有窗体都位于同一程序集中并具有相同的命名空间。请记住,你的客户不太可能因为每次有新员工都要打电话给你而感到兴奋。或者,你可能会要求用户名+密码,而不提供Windows登录已经提供的那种安全保证。不要这样做。

我从VB6重新标记到VB.Net(变量初始值设定项语法)谢谢,我有时会把2搞错。你有帐户文件中每个用户的自定义表单吗?嗯,我想看看是否有办法在程序运行时动态生成表单,但我可能能够传递username变量,并从适当的文本文件填充单个表单。我的意思是,每个用户都有一个基本密码和一个单独的文本文件,根据用户的身份加载,并使用该文件填充表单上的文本字段等。此外:纯文本密码让我很难过。这只是一个供个人使用的实践程序,我目前正在参加大学学习软件开发。