VB怎样让所有的text输入不得相同?或者判断,text有点多,一个一个判断有点麻烦

2025-04-06 11:54:55
推荐回答(3个)
回答1:

Dim coll As Collection

Function CheckExists(t As TextBox) As Boolean
    On Error Resume Next
    CheckExists = False
    Dim obj As TextBox
    Set obj = coll.Item(t.Text)
    If Err.Number <> 0 Then
        coll.Add t, t.Text
    Else
        obj.ForeColor = vbRed '已经存在的也变红色
        CheckExists = True
    End If
End Function

Private Sub Command1_Click()
    Dim t As TextBox
    Set coll = New Collection
    For i = 0 To Me.Controls.Count - 1
       If TypeName(Me.Controls(i)) = "TextBox" Then
          Set t = Me.Controls(i)
          t.ForeColor = vbBlack
          ' 判断是否有重复,重复自动变红色
          If CheckExists(t) Then
             
             t.ForeColor = vbRed
             MsgBox "有重复"
             t.SetFocus
          End If
    
       End If
    Next
End Sub

回答2:

另建一个字符串数组,插入数组中的元素要求从小到大排序。

每输入一个text,用二分法在上面的有序数组中查找,找到就提示 “重复” 要求重新输入;没找到就插入二分法最后定位的位置。

回答3:

使用控件数组来做
就可以了
使用控件数组来做
就可以了
使用控件数组来做
就可以了