写到注册表里是一个办法,不过你也可以把它存到一个INI文件里。把下面的代码放到一个模块里。 你可以按你的要求修改"setup.ini"为你要保存的ini文件名字。 然后,拿个例子说吧,Checkbox 在其事件click的时候,保存其属性值, setinis("control","checkbox1",checkbox1.value)而在checkbox所在的页面load的时候,读出它的值getinis("control","checkbox1",0)Private Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpString As Any, ByVal lpFileName As String) As Long Private Declare Function WritePrivateProfileSection Lib "kernel32" Alias "WritePrivateProfileSectionA" (ByVal lpAppName As String, ByVal lpString As String, ByVal lpFileName As String) As Long Private Declare Function GetPrivateProfileSection Lib "kernel32" Alias "GetPrivateProfileSectionA" (ByVal lpAppName As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long Private Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long Public Function GetIniS(ByVal SectionName As String, ByVal keyWord As String, ByVal DefString As String) As String Dim ResultString As String * 144, temp As Integer Dim s As String, i As Integer temp% = GetPrivateProfileString(SectionName, keyWord, "", ResultString, 144, App.Path & "\setup.ini") '‘检索关键词的值 If temp% > 0 Then '‘关键词的值不为空 s = "" For i = 1 To 144 If Asc(Mid$(ResultString, i, 1)) = 0 Then Exit For Else s = s & Mid$(ResultString, i, 1) End If Next Else temp% = WritePrivateProfileString(SectionName, keyWord, DefString, App.Path & "\setup.ini") '‘将缺省值写入INI文件 s = DefString End If GetIniS = s End FunctionPublic Function SetIniS(ByVal SectionName As String, ByVal keyWord As String, ByVal ValStr As String) Dim res% res% = WritePrivateProfileString(SectionName, keyWord, ValStr, App.Path & "\setup.ini") End Function
你在form上放一个CheckBox 加上下面的代码试试: Option Explicit Private Sub Form_Load() Check1.Value = GetSetting("myapp", "Startup", "Check", 0) DeleteSetting "MyApp", "Startup" End Sub Private Sub Form_Unload(Cancel As Integer) SaveSetting "MyApp", "Startup", "Check", Check1.Value End Sub
你可以按你的要求修改"setup.ini"为你要保存的ini文件名字。
然后,拿个例子说吧,Checkbox 在其事件click的时候,保存其属性值,
setinis("control","checkbox1",checkbox1.value)而在checkbox所在的页面load的时候,读出它的值getinis("control","checkbox1",0)Private Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpString As Any, ByVal lpFileName As String) As Long
Private Declare Function WritePrivateProfileSection Lib "kernel32" Alias "WritePrivateProfileSectionA" (ByVal lpAppName As String, ByVal lpString As String, ByVal lpFileName As String) As Long
Private Declare Function GetPrivateProfileSection Lib "kernel32" Alias "GetPrivateProfileSectionA" (ByVal lpAppName As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long
Private Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long
Public Function GetIniS(ByVal SectionName As String, ByVal keyWord As String, ByVal DefString As String) As String
Dim ResultString As String * 144, temp As Integer
Dim s As String, i As Integer
temp% = GetPrivateProfileString(SectionName, keyWord, "", ResultString, 144, App.Path & "\setup.ini")
'‘检索关键词的值
If temp% > 0 Then '‘关键词的值不为空
s = ""
For i = 1 To 144
If Asc(Mid$(ResultString, i, 1)) = 0 Then
Exit For
Else
s = s & Mid$(ResultString, i, 1)
End If
Next
Else
temp% = WritePrivateProfileString(SectionName, keyWord, DefString, App.Path & "\setup.ini")
'‘将缺省值写入INI文件
s = DefString
End If
GetIniS = s
End FunctionPublic Function SetIniS(ByVal SectionName As String, ByVal keyWord As String, ByVal ValStr As String)
Dim res%
res% = WritePrivateProfileString(SectionName, keyWord, ValStr, App.Path & "\setup.ini")
End Function
退出时保存控件值,启动时读出并赋值。
退出时保存控件值,启动时读出并赋值。
Option Explicit
Private Sub Form_Load()
Check1.Value = GetSetting("myapp", "Startup", "Check", 0)
DeleteSetting "MyApp", "Startup"
End Sub
Private Sub Form_Unload(Cancel As Integer)
SaveSetting "MyApp", "Startup", "Check", Check1.Value
End Sub