关于combobox的问题

haifeng39 2008-07-17 02:00:09
combobox默认有5项,用户可以自己添加项。要求是程序会自动保存用户添加的项,以便程序下次启动的时候会自动加载。
我现在是这样做的:把用户添加的项保存到INI文件里,但是只实现了保存用户最后一次添加的项,请问如何实现保存所有的项?是不是必须要用到数据库啊?如果用到数据库又该怎么做呢?
...全文
114 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
kempinfo 2008-07-21
  • 打赏
  • 举报
回复
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.NET code
Dim sr As StreamReader = New StreamReader(My.Application.Info.DirectoryPath & "\1.ini")
ComboBox1.Items.Clear()
While sr.Peek() > -1
strt = sr.ReadLine()
ComboBox1.Items.Add(strt.tostring())
End While
sr.Close()

slicelee 2008-07-20
  • 打赏
  • 举报
回复
DataSet的WriteXml()和ReadXml()呢,直接就保存为XML文件,也挺方便。
xiao1zhao 2008-07-19
  • 打赏
  • 举报
回复
1.简单的文本保存

2.ini或注册表保存

3.数据库保存

不过用数据库就有点大炮打麻雀了
wdgphc 2008-07-18
  • 打赏
  • 举报
回复
退出前把所有的项逐一保存.加载前从ini中将所有项依次加载
kbryant 2008-07-18
  • 打赏
  • 举报
回复
进来学习
jcobra 2008-07-18
  • 打赏
  • 举报
回复
楼上用了API ,我再给一个不用API的方法:
写入:

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()


读取:

Dim sr As StreamReader = New StreamReader(My.Application.Info.DirectoryPath & "\1.ini")
ComboBox1.Items.Clear()
While sr.Peek() > -1
strt = sr.ReadLine()
ComboBox1.Items.Add(strt.tostring())
End While
sr.Close()
yanlongwuhui 2008-07-17
  • 打赏
  • 举报
回复
声明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

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧