如何使用vb保存窗体状态?

比如说:保存text控件的状态,在打开程序后,在Text1中输入一些文字,单击Command1,然后再退出程序,再次打开程序后,Text1中的文字仍保留在那里。
麻烦一下我再问几个,如果满意回答每一个题我给40分
1:如何把保存和载入的对象变成List1?
2:解释一下那几个句型
Getsetting和SaveSetting
3:添加按钮的方法,如单击Command1后,可以在Command1的下方指定位置创建一个按钮(解释一下句型)

1:如何把保存和载入的对象变成List1?
2:解释一下那几个句型
Getsetting和SaveSetting
3:添加按钮的方法,如单击Command1后,可以在Command1的下方指定位置创建一个按钮(解释一下句型)

1.你可以在保存的时候用分隔符 比如$$$$这样没可能四个同时出现的组合 载入时用split函数分割成数组再循环读取即可

2.这些是自定义函数的函数名 没需解释
GetString(根, 项, 键)
如 GetString(HKEY_LOCAL_MACHINE, "SOFTWARE\TENCENT\QQ", "Install")

根在头部声明中已经声明了四个
Public Const HKEY_CLASSES_ROOT = &H80000000
Public Const HKEY_CURRENT_USER = &H80000001
Public Const HKEY_LOCAL_MACHINE = &H80000002
Public Const HKEY_USERS = &H80000003

SaveSetting这个是二楼的代码中的
你可以在VB中按F2自己查看相关用法

Sub SaveSetting(AppName As String, Section As String, Key As String, Setting As String)
VBA.Interaction 的成员
保存一个指定的应用程序名称、区和关键字下的设置

============================================
1.可以保存在注册表或者 txt文件 或者ini文件中
ini文件操作函数
http://zhidao.baidu.com/question/41273946.html
注册表操作函数
http://zhidao.baidu.com/question/41744466.html

文本文档通用读写函数

openfile 文件名

savefile 文件名,保存字符
Public Function openfile(ByVal filepath As String) As String
Dim s As String
Open filepath For Input As #1
While Not EOF(1)
Line Input #1, sline
s = s & sline & vbCrLf
Wend
Close #1
openfile = s
End Function

Public Function savefile(ByVal filepath As String, ByVal txt As String)
Open filepath For Output As #1
Print #1, txt
Close #1
End Function

锁定的相关功能要用到API hook掉win ctrl+alt+del等的操作 及鼠标的移动等
一律用到API
温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-01-06
注册表

'系统启动时读取注册表里的内容
Private Sub Form_Load()
Dim a As String

a = GetSetting(App.Title, "aaa", "text") '在注册表里读出数据
If a <> "" Then text1=a
End Sub

'退出时保存内容
Private Sub Form_Unload(Cancel As Integer)

SaveSetting App.Title, "aaa", "text", text1 '写数据到注册表

End Sub本回答被提问者采纳
第2个回答  2008-01-06
在窗体上添加Command1,Text1然后将以下文字复制到代码编辑器中,编译以后就可以实现上述效果
'将文本写入文件
'按下Command1触发:
Private Sub Command1_Click()
strText = CStr(Text1.text)
Open app.path & "temp.txt" For Output As #1
Print #1, strText
Close #1
End Sub
'读取多行文本的函数:
Public Function StringsByFile(ByVal tFileName As String, Optional ByVal pDelimiter As String = vbCrLf) As String()

Dim tOutStrings() As String

Dim tText As String

tText = TextGetByFile(tFileName)

tOutStrings() = Split(tText, pDelimiter)

StringsByFile = tOutStrings()
End Function

Public Function TextGetByFile(ByVal tFileName As String) As String
Dim tOutText As String

Dim tBytes() As Byte

tBytes() = BytesGetByFile(tFileName)

tOutText = StrConv(tBytes(), vbUnicode)

TextGetByFile = tOutText
End Function

Public Function BytesGetByFile(ByVal tFileName As String, Optional ByVal pFileStart As Long = 1) As Byte()
On Error GoTo errLoad
Dim tOutBytes() As Byte
Dim tOutBytes_Length As Long

Dim tFileNumber As Integer
Dim tFileSize As Long

tFileNumber = FreeFile

Open tFileName For Binary As #tFileNumber

tFileSize = LOF(tFileNumber)

tOutBytes_Length = tFileSize - pFileStart

ReDim tOutBytes(tOutBytes_Length)

Get #tFileNumber, pFileStart, tOutBytes()

Close #tFileNumber

BytesGetByFile = tOutBytes()
Exit Function
errLoad:
Close #tFileNumber
Kill tFileName
Exit Function
End Function
'程序再次打开时:
'在From_Load过程中:
Private Sub Form_Load()
Text1.text= TextGetByFile(app.path & "temp.txt")
end sub
第3个回答  2008-01-08
ooooops,楼上弄得太复杂了,给你个简单的

'这是读取

Open "c:\123.txt" For Input as #1
Line Input #1,temp
Text1.Text=Temp
Line Input #1,temp
Command1.Caption=Temp
Close #1

'这是写入,不好使的话把Print里的#1和剩下的那个调过来
Open "c:\123.txt" For Output as #1
Print #1,Text1.Text
Print #1,Cammand1.Caption
Close #1
第4个回答  2008-01-06
你开始就直接给text1赋值不就得了
程序一启动可以运行Text1.text=""或其他不就为空了吗
单击事件再另外赋值
我着得住你们!

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网