如何防止在ListView中添加同一学生的ID或数字顺序?

问题描述 投票:0回答:2

我有一个按钮添加。如何防止用户在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
vb.net listview
2个回答
0
投票

这是我的代码,但是不起作用。我认为“如果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

0
投票

使您为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
© www.soinside.com 2019 - 2024. All rights reserved.