我有一个按钮添加。如何防止用户在ListView Control中添加相同的学生ID或数字顺序?
我的代码仅在将数据保留在文本框控件中时有效,但是当我清除所有数据并像以前一样添加相同的数据时,它仍然可以添加。
这是我的代码。
If LvSV.Items.Count = 0 Then
Dim items As ListViewItem
items = LvSV.Items.Add(Tbx_NumOrder.Text)
items.SubItems.Add(Tbx_ID.Text)
items.SubItems.Add(Tbx_Name.Text)
items.SubItems.Add(Tbx_Class.Text)
items.SubItems.Add(Tbx_hometown.Text)
items = Nothing
Else
With LvSV
Dim addIteam As ListViewItem
Dim addIteam2 As ListViewItem
addIteam = .FindItemWithText(Tbx_Name.Text, True, 0, True)
'addIteam2 = .FindItemWithText(Tbx_ID.Text, True, 0, True)
If Not addIteam Is Nothing Then
MessageBox.Show("The student is already ", "Course List", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
Else
items = LvSV.Items.Add(Tbx_NumOrder.Text)
items.SubItems.Add(Tbx_ID.Text)
items.SubItems.Add(Tbx_Name.Text)
items.SubItems.Add(Tbx_Class.Text)
items.SubItems.Add(Tbx_hometown.Text)
items = Nothing
End If
End With
End If
这是我的代码,但是不起作用。我认为“如果Item(0)= StudentIDStr1然后 MessageBox.Show(“重复ID”)“
Dim StudentIDStr1 As String = Tbx_Masv.Text
If LvSV.Items.Count = 0 Then
Dim items As ListViewItem
items = LvSV.Items.Add(Tbx_NumOrder.Text)
items.SubItems.Add(Tbx_ID.Text)
items.SubItems.Add(Tbx_Name.Text)
items.SubItems.Add(Tbx_Class.Text)
items.SubItems.Add(Tbx_hometown.Text)
items = Nothing
Else
For Each Item In LvSV.Items
If Item(0) = StudentIDStr1 Then
MessageBox.Show("Duplicate id")
Exit For
End If
Next
Dim items As ListViewItem
items = LvSV.Items.Add(Tbx_NumOrder.Text)
items.SubItems.Add(Tbx_ID.Text)
items.SubItems.Add(Tbx_Name.Text)
items.SubItems.Add(Tbx_Class.Text)
items.SubItems.Add(Tbx_hometown.Text)
items = Nothing
End If
使您为ID和订单号添加的2个值列表,而不是检查ListView的所有列是否匹配。然后使用列表的.Contains方法进行验证。
Public Class Form1
Dim lstID As New List(Of String)
Dim lstOrdNum As New List(Of String)
Private Function IsUnique() As Boolean
If lstID.Contains(Tbx_ID.Text) Then
MessageBox.Show("Duplicate ID")
Return False
End If
If lstOrdNum.Contains(Tbx_NumOrder.Text) Then
MessageBox.Show("Dublicate Order Number")
Return False
End If
lstID.Add(Tbx_ID.Text)
lstOrdNum.Add(Tbx_NumOrder.Text)
Return True
End Function
Private Sub AddToListView()
If IsUnique() Then
Dim items As ListViewItem
items = LvSV.Items.Add(Tbx_NumOrder.Text)
items.SubItems.Add(Tbx_ID.Text)
items.SubItems.Add(Tbx_Name.Text)
items.SubItems.Add(Tbx_Class.Text)
items.SubItems.Add(Tbx_hometown.Text)
End If
End Sub
End Class