Click here to Skip to main content
15,892,643 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
Hi,

Is there is any possibilities to search a text in listview which contains duplicates string also i need to return all matched strings in the listview in vb.net.
For e.g

HTML
   Name	                 Size      Date	         Format
978945251.pdf.ssdswew	37Mb	3/7/2013 	ssdswew
978945251.pdf.ssdsdsddew 37Mb	3/7/2013	ssdsdsddew
978945270.pdf.ssdswew	37Mb	3/7/2013	ssdswew
978945251.pdf.ssdghhsdde37Mb	3/7/2013	ssdsdghgfhsddew


Need to return only

HTML
978945251.pdf.ssdswew	37Mb	3/7/2013 	ssdswew
978945251.pdf.ssdsdsddew 37Mb	3/7/2013	ssdsdsddew
978945251.pdf.ssdghhsdde37Mb	3/7/2013	ssdsdghgfhsddew


Thanks
Sivasankaran G
Posted
Updated 14-Mar-13 3:57am
v2

hi try this way,

C#
Public Class Form1


    Public output As New List(Of Class1)
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim index As Integer
        Dim row1 As String() = {"978945251.pdf.ssdswew", "37Mb", "3/7/2013", "ssdswew"}
        Dim row2 As String() = {"978945251.pdf.ssdsdsddew", "37Mb", "3/7/2013", "ssdsdsddew"}
        Dim row3 As String() = {"978945270.pdf.ssdswew", "37Mb", "3/7/2013", "ssdswew"}
        Dim row4 As String() = {"978945251.pdf.ssdghhsdde", "37Mb", "3/7/2013", "ssdsdghgfhsddew"}
        Dim lst As ListViewItem
        lst = New ListViewItem(row1)
        ListView1.Items.Add(lst)
        lst = New ListViewItem(row2)
        ListView1.Items.Add(lst)
        lst = New ListViewItem(row3)
        ListView1.Items.Add(lst)
        lst = New ListViewItem(row4)
        ListView1.Items.Add(lst)
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim temp As String = String.Empty
        For Each lv As ListViewItem In ListView1.Items
            temp = lv.SubItems(3).Text
            If (Isfound(temp) = False) Then
                output.Add(AdddistinctRow(lv))
            End If
        Next
    End Sub

    Public Function Isfound(ByVal val As String) As Boolean
        Dim flag As Boolean = False
        Dim index As Integer = 0
       
            For index = 0 To output.Count - 1
            If (output(index).Format.Equals(val) = True) Then
                flag = True
            End If
        Next
        Return flag
    End Function

    Public Function AdddistinctRow(ByVal lst As ListViewItem) As Class1
        Dim obj As New Class1
        obj.Name = lst.SubItems(0).Text
        obj.Size = lst.SubItems(1).Text
        obj.Dates = lst.SubItems(2).Text
        obj.Format = lst.SubItems(3).Text
        Return obj
    End Function
End Class


As per your requirement to write your own class,


C#
Public Class Class1
    Private _name As String
    Public Property Name() As String
        Set(ByVal value As String)
            _name = value
        End Set
        Get
            Return _name
        End Get
    End Property

    Private _Size As String
    Public Property Size() As String
        Get
            Return _Size
        End Get
        Set(ByVal value As String)
            _Size = value
        End Set
    End Property

    Private _Date As DateTime
    Public Property Dates() As DateTime
        Get
            Return _Date
        End Get
        Set(ByVal value As DateTime)
            _Date = value
        End Set
    End Property
    Private _Format As String
    Public Property Format() As String
        Get
            Return _Format
        End Get
        Set(ByVal value As String)
            _Format = value
        End Set
    End Property
End Class



regards and thanks
sarva
 
Share this answer
 
To Use With A Dynamic Listview Run?
PS: The Items In The Listview Don't Use SubItems
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900