2015-08-10 3 views
2

ListView: lvDataПроверка существующих данных в Listview

acctcode  first  last 

1 DFNTN  High  Definition 
2 BLNCE  World  Balance 
3 RNBOW  Rain  Bow 

Я хочу добавить данные в lvData с помощью textbox. Но сначала программа должна проверить, имеются ли данные, представленные в textbox. На основании столбца acctcode.

вот мой код:

Dim articlecheck As String = TEXTBOX.text 
     Dim founditem As ListViewItem = LVDATA.FindItemWithText(articlecheck) 
     If Not (founditem Is Nothing) Then 
      MessageBox.Show("Data already exists!", "Duplicate", MessageBoxButtons.OK, MessageBoxIcon.Error) 
      Exit Sub 
     Else 
      'ADD DATA in the LISTVIEW' 

Проблема состоит в том случае, если я ставлю значение в текстовом поле что-то вроде этого: DFN, BLN, RNB. Моя программа будет показывать "Data alrleady exist!"

ответ

2

Попробуйте использовать тот же метод FindItemWithText с этими параметрами.

 

LVDATA.FindItemWithText(articlecheck,False,0,False) 

+0

Спасибо @Abdul. оно работает. помогите объяснить, что добавляет false, 0, false do? –

+1

первый False передается для игнорирования текста начинается с поиска, а 0 - для начала индекса поискового текста, а последний - для отмены префикса –

1

Вы должны цикл корыта подразделов, потому что FindItemWithText будет искать текст во всех подразделов:

Существует код:

Private Function FindSubItem(ByVal lv As ListView, ByVal SearchString As String) As Boolean 
    'find column index in listview by name "acctcode" 
    Dim idx = (From c In ListView1.Columns Where c.Text = "acctcode" Select c = c.Index).First() 
    For Each itm As ListViewItem In lv.Items 
     'search only subitems of column "acctcode" 
     If itm.SubItems(idx).Text = SearchString Then Return True 
    Next 
    Return False 
End Function 

, а затем использовать:

Dim articlecheck As String = TEXTBOX.text 
    If FindSubItem(LVDATA, articlecheck) = True Then 
     MessageBox.Show("Data already exists!", "Duplicate", MessageBoxButtons.OK, MessageBoxIcon.Error) 
     Exit Sub 
    Else 
     'add Your item 
    End If