combobox使用问题

earning24h 2008-04-15 03:12:57
在VB中使用COMBOBOX控件时如何删除不必要的条目,以及用ADDITEM时如何避免加入重复的条目,以及加入新条目后怎么避免程序重启时又丢掉?请高手帮忙!
...全文
119 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
东方之珠 2008-04-16
  • 打赏
  • 举报
回复
上面Form_Load()改成下面,就全对了:

Private Sub Form_Load()

On Error Resume Next

'装入Combo1项目
If Dir("C:\Combo1.txt") = "" Then GoTo AAA
Combo1.Clear
FileNumber = FreeFile
Open ("C:\Combo1.txt") For Input As #FileNumber '打开文件
Do While Not EOF(FileNumber)
Line Input #FileNumber, cTXTValue '读取一行文本
Combo1.AddItem Trim(cTXTValue)
DoEvents
Loop
Close #FileNumber
AAA:


For i = 0 To 10
List1.AddItem "123" & i
Next
str = "AAA"
For i = 0 To Combo1.ListCount - 1
If StrComp(str, Combo1.List(i)) = 0 Then Exit Sub
Next
Combo1.AddItem "AAA"

End Sub
东方之珠 2008-04-16
  • 打赏
  • 举报
回复
Option Explicit

Dim i%, j%, str$, FileNumber&, cTXTValue$

'保存Combo1项目
Private Sub Command1_Click()
FileNumber = FreeFile
Open ("C:\Combo1.txt") For Output Shared As #FileNumber '打开文件,准备保存
For i = 0 To Combo1.ListCount - 1
Print #FileNumber, Combo1.List(i)
DoEvents
Next
Close #FileNumber
End Sub

Private Sub Form_Load()

On Error Resume Next

'装入Combo1项目
If Dir("C:\Combo1.txt") = "" Then GoTo AAA
FileNumber = FreeFile
Open ("C:\Combo1.txt") For Input As #FileNumber '打开文件
Do While Not EOF(FileNumber)
Line Input #FileNumber, cTXTValue '读取一行文本
Combo1.AddItem Trim(cTXTValue)
DoEvents
Loop
Close #FileNumber
AAA:
Combo1.AddItem "AAA"

For i = 0 To 10
List1.AddItem "123" & i
Next
End Sub

Private Sub List1_Click()
For i = 0 To Combo1.ListCount - 1
str = List1.List(List1.ListIndex)
If StrComp(str, Combo1.List(i)) = 0 Then Exit Sub
Next
Combo1.AddItem str
End Sub
earning24h 2008-04-16
  • 打赏
  • 举报
回复
主要问题已解决!谢谢各位!
东方之珠 2008-04-15
  • 打赏
  • 举报
回复
要这样,你把那个str和For...Next挨在一起,那每次都要加进去!

Option Explicit

Dim i%, str$

Private Sub Form_Load()
Combo1.AddItem "1234"
For i = 0 To 10
List1.AddItem "123" & i
Next
End Sub

Private Sub List1_Click()
For i = 0 To Combo1.ListCount - 1
str = List1.List(List1.ListIndex)
If Not StrComp(str, Combo1.List(i)) = 0 Then
Combo1.AddItem str
Exit Sub
End If
Next
End Sub
dbcontrols 2008-04-15
  • 打赏
  • 举报
回复
写到文本文件里,下次使用的时候读出即可
我这里没装VB...
[Quote=引用 9 楼 cash24h 的回复:]
8楼正确!!谢谢 !
现在我的问题解决了2个
只剩下程序重启丢失条目的问题了,
哪位高手再给一段代码!
[/Quote]
earning24h 2008-04-15
  • 打赏
  • 举报
回复
8楼正确!!谢谢 !
现在我的问题解决了2个
只剩下程序重启丢失条目的问题了,
哪位高手再给一段代码!
dbcontrols 2008-04-15
  • 打赏
  • 举报
回复
Dim i%,str$
str="1234"
For i = 0 To Combo1.ListCount - 1
If Str =Combo1.List(i) Then goto aaa
Next
Combo1.AddItem str
aaa:

波导终结者 2008-04-15
  • 打赏
  • 举报
回复
从0开始数,第i+1条就是removeitem i

这个代码没问题,如果还是有重复的,检查是否有大小写及空格等。
earning24h 2008-04-15
  • 打赏
  • 举报
回复
大家可以自己试试:这个无效,
Dim i%,str$
str="1234"
For i = 0 To Combo1.ListCount - 1
If Str<>Combo1.List(i) Then Combo1.AddItem str:exit for
Next
仍然加上重复的了

另外, REMOVEATTEM 的参数怎么用,怎么删除指定的条目
jikun6666 2008-04-15
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 chenjl1031 的回复:]
引用 3 楼 alifriend 的回复:
引用 2 楼 chenjl1031 的回复:
1.删除不必要的条目:用Combo1.RemoveItem方法
2. 用ADDITEM时如何避免加入重复的条目
Dim i%
For i = 0 To Combo1.ListCount - 1
If Str <> Combo1.List(i) Then Combo1.AddItem "1234"
Next

这样要加上跳出循环的语句吧,要不然每个不重复的都得加一次



你说得对,加了应该立即跳出循环:


VBScript codeDim i%,str$
str="1…
[/Quote]
说得很具体了
东方之珠 2008-04-15
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 alifriend 的回复:]
引用 2 楼 chenjl1031 的回复:
1.删除不必要的条目:用Combo1.RemoveItem方法
2. 用ADDITEM时如何避免加入重复的条目
Dim i%
For i = 0 To Combo1.ListCount - 1
If Str <> Combo1.List(i) Then Combo1.AddItem "1234"
Next

这样要加上跳出循环的语句吧,要不然每个不重复的都得加一次
[/Quote]


你说得对,加了应该立即跳出循环:

Dim i%,str$
str="1234"
For i = 0 To Combo1.ListCount - 1
If Str<>Combo1.List(i) Then Combo1.AddItem str:exit for
Next



波导终结者 2008-04-15
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 chenjl1031 的回复:]
1.删除不必要的条目:用Combo1.RemoveItem方法
2. 用ADDITEM时如何避免加入重复的条目
Dim i%
For i = 0 To Combo1.ListCount - 1
If Str <> Combo1.List(i) Then Combo1.AddItem "1234"
Next
[/Quote]
这样要加上跳出循环的语句吧,要不然每个不重复的都得加一次
东方之珠 2008-04-15
  • 打赏
  • 举报
回复
1.删除不必要的条目:用Combo1.RemoveItem方法
2. 用ADDITEM时如何避免加入重复的条目
Dim i%
For i = 0 To Combo1.ListCount - 1
If Str <> Combo1.List(i) Then Combo1.AddItem "1234"
Next
友个人 2008-04-15
  • 打赏
  • 举报
回复
1.additem 对应 move
2.用循环判断一下
3.写入外部文件中,下次运行时读取

1,453

社区成员

发帖
与我相关
我的任务
社区描述
VB 控件
社区管理员
  • 控件
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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