Private Sub Combo1_KeyUp(KeyCode As Integer, Shift As Integer)
If KeyCode = 13 Then
InputItem
End If
End SubPrivate Function InputItem()
Dim T As Boolean
T = False
For i = 1 To Combo1.ListCount
If Trim(Text1.Text) = Combo1.List(i) Then
T = True
Exit For
End If
Next
If Not (T) Then
Combo1.AddItem Trim(Combo1.Text)
End If
End Function
If KeyCode = 13 Then
InputItem
End If
End SubPrivate Function InputItem()
Dim T As Boolean
T = False
For i = 1 To Combo1.ListCount
If Trim(Text1.Text) = Combo1.List(i) Then
T = True
Exit For
End If
Next
If Not (T) Then
Combo1.AddItem Trim(Combo1.Text)
End If
End Function
2、是否分别大小写:True 表示要分别大小写,False 则不分大小写。Sub RemoveDups(lst As Control, comptype As Boolean)
Dim lPos As Long '原始比对项目 index
Dim lCompPos As Long '待比对项目 index
Dim sComp As String '原始比对字串
Dim sComptype As Long '0(binary) / 1(textual) 比对lPos = 0
If comptype Then sComptype = 0 Else sComptype = 1
Do While lPos < (lst.ListCount - 1)
sComp = lst.List(lPos)
lCompPos = lPos + 1
Do While lCompPos < lst.ListCount
If StrComp(sComp, lst.List(lCompPos), sComptype) = 0 Then
lst.RemoveItem lCompPos
lCompPos = lCompPos - 1
End If
lCompPos = lCompPos + 1
Loop
lPos = lPos + 1
Loop
End Sub'在程序中使用方式如下:'要分别大小写
Private Sub Command1_Click()
RemoveDups List1, True
RemoveDups Combo1, True
End Sub
'不分别大小写
Private Sub Command2_Click()
RemoveDups List1, False
RemoveDups Combo1, False
End Sub
'API声明
'------------------------------------------------------------------
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
Private Const CB_FINDSTRINGEXACT = &H158'------------------------------------------------------------------
'函数:CBAddItem
'功能:在一个Combobox中添加数据。
'说明:如果要添加的数据在Combobox中存在,则不添加
' 如果要添加的数据在Combobox中不存在,则添加
Private Sub CBAddItem(CB As ComboBox, Data As String) Dim l As Long
l = SendMessage(CB.hwnd, CB_FINDSTRINGEXACT, 0&, ByVal Data)
If l = -1 Then CB.AddItem Data
End Sub'使用:CBAddItem Combobox控件名, 要添加的数据
'例子:
'Private Sub Command1_Click()
'
' CBAddItem Combo1, Text1.Text
'End Sub'------------------------------------------------------------------