读书人

关于combobox的有关问题

发布时间: 2012-02-26 20:19:43 作者: rapoo

关于combobox的问题
combobox默认有5项,用户可以自己添加项。要求是程序会自动保存用户添加的项,以便程序下次启动的时候会自动加载。
我现在是这样做的:把用户添加的项保存到INI文件里,但是只实现了保存用户最后一次添加的项,请问如何实现保存所有的项?是不是必须要用到数据库啊?如果用到数据库又该怎么做呢?

[解决办法]
声明API:
Private Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal lpString As String, ByVal lpFileName As String) As Integer
Private Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Integer, ByVal lpFileName As String) As Integer

写入INI:
Dim strIniFileName As String
Dim intI As Integer
strIniFileName = "C:\1.ini"
WritePrivateProfileString("content", "count", ComboBox1.Items.Count.ToString, strIniFileName)
For intI = 0 To ComboBox1.Items.Count - 1
WritePrivateProfileString("content", "item" & intI.ToString, ComboBox1.Items(intI), strIniFileName)
Next

读取:
Dim strIniFileName As String
Dim intI As Integer
Dim strRtn As String = Space(256)
strIniFileName = "C:\1.ini"
GetPrivateProfileString("content", "count", 0, strRtn, strRtn.Length, strIniFileName)
If strRtn.Length > 0 Then
ComboBox1.Items.Clear()
For intI = 0 To CInt(strRtn) - 1
GetPrivateProfileString("content", "item" & intI.ToString, 0, strRtn, strRtn.Length, strIniFileName)
ComboBox1.Items.Add(strRtn)
Next
End If
[解决办法]
楼上用了API ,我再给一个不用API的方法:
写入:

VB.NET code
 Dim sw As StreamWriter = New StreamWriter(My.Application.Info.DirectoryPath & "\1.ini")    For intI = 0 To ComboBox1.Items.Count - 1        sw.WriteLine(ComboBox1.Items(intI).tostring())    Next    sw.Flush()    sw.Close() 

读书人网 >VB Dotnet

热点推荐