2013-11-26 35 views
0

我有一個需要用戶認證的程序。現在,我將登錄名存儲在公共字符串中,但我想要使用更多關於用戶的信息,例如他選擇使用哪種語言,他的名字以及這樣的內容。我可以創建另一個公共字符串,但我不喜歡這個想法。 我的目標是在用戶輸入用戶名和密碼時保存一些關於用戶的數據。 我要創建這樣的事情:在Visual Studio 2008中創建全局變量

user.logonname 
user.language 

我想到了一個結構就可以了,所以我創造了這個:

Public Structure user 
    Public logonname As String 
    Public languagetype As String 
End Structure 

但我只能訪問它像這樣:

Dim user1 as new user 

但是這不能覆蓋公共結構,只是創建它的一個實例,因此其他表單將不會有我需要的信息。 我在VB6中看到了類似這樣的內容,但該程序使用的是包含這種類型的變量的DLL,我不太瞭解它,我確信有更好的方法。 有人可以幫助我嗎? 在此先感謝。

+0

爲什麼不是結構的一類?範圍(訪問)將取決於'user1'聲明的位置。 – Plutonix

+0

我知道我可以使用類,但我希望有一個變量類型或我可以使用的東西。 – Joe88

+0

這個問題不是類,結構或變量 - 它是'scope' - 你聲明user1決定它是全局的,模塊級別,類級別還是程序級別範圍(可見性) – Plutonix

回答

1

感謝Plutonix,我想出了它。如果有人需要它,我這樣做:

Public Module GeneralModule 
    Public Structure user 
     Public logonname As String 
     Public languagetype As String 
    End Structure 

    Public guser As New user 
End Module 

而且我可以訪問任何我想要的guser。

例子:

Private Function login 
    'Some other code 
    guser.logonname = Me.userid.text 
    guser.languagetype = Me.ComboBoxLanguage.Text 
End Function 
1

也許這會幫助你在你的項目中。祝你好運!

Public Type EmployeeName 

FirstName As String 

MidInit As String 

LastName As String 

End Type 



Public Type EmployeeRecord 

udtEmpName As EmployeeName 

dtmHireDate As Date 

sngHourlyRate As Single 

dblQuarterlyEarnings(1 To 4) As Double 

End Type 



Dim udtEmpRec As EmployeeRecord 

你會引用EmployeeName字段如下:

udtEmpRec.udtEmpName.FirstName 

udtEmpRec.udtEmpName.MidInit 

udtEmpRec.udtEmpName.LastName 
0

創建一個模塊和模塊中聲明的公共變量。這些變量將可用於整個項目然後