急,listbox对相同的项只显示一次

black205 2007-12-10 04:03:30
在VB中listbox对相同的项只显示一次應該怎么樣做呢?哪位大俠告知一下,謝謝
...全文
102 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
YuLv 2007-12-11
  • 打赏
  • 举报
回复
SendMessage 的方法是最好的选择,楼上正确。
Sandrer 2007-12-11
  • 打赏
  • 举报
回复
嘿嘿,来个API版,速度更快,不用循环


Const LB_ADDSTRING = &H180
Const LB_FINDSTRING = &H18F

Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long

Dim lngIndex As Long
Dim strItem As String
strItem = "这个变量等于你要插入到ListBox中的值"
lngIndex = SendMessage(List1.hWnd, LB_FINDSTRING, -1, ByVal strItem) '这里设置-1,是表示从头开始查找
If lngIndex = -1 Then '等于-1则表示没有找到匹配项目
SendMessage List1.hWnd, LB_ADDSTRING, 0, ByVal strItem '增加项目到ListBox中
End If
of123 2007-12-11
  • 打赏
  • 举报
回复
用这个参数:

Const LB_FINDSTRINGEXACT = &H1A2
black205 2007-12-10
  • 打赏
  • 举报
回复
謝謝樓上的兄弟,在參考你給的程序下問題解決了,謝謝
ZOU_SEAFARER 2007-12-10
  • 打赏
  • 举报
回复
Private Sub Command1_Click()
On Error Resume Next
Dim vntA As Variant
Dim colX As New Collection
Dim intILoop As Integer
vntA = Array("abc", "abd", "abc", "abe") '//there are two "abc"
For intILoop = 0 To UBound(vntA)
Call colX.Add(vntA(intILoop), vntA(intILoop))
Next

For intILoop = 1 To colX.Count
Me.List1.AddItem colX.Item(intILoop)
Next

End Sub
东方之珠 2007-12-10
  • 打赏
  • 举报
回复
dim i as Long,j as long
For i=0 to File1.ListCount-1
if File1.Selected(i)=True then "凡是选中的就添加(不能重复)
for j=0 to List1.ListCount-1
if trim(List1.List(j)) < >trim(File1.List(i)) then
List1.AddItem File1.List(i)
List1.refresh
endif
next
endif
next

7,785

社区成员

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

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