Daten in DataGridView suchen

  • VB.NET

Es gibt 9 Antworten in diesem Thema. Der letzte Beitrag () ist von Nilselino.

    Daten in DataGridView suchen

    Guten Tag,
    Ich möchte in meinem DataGridView alle Spalten durchsuchen. Das heißt ich gebe in ein Textfeld den Suchbergriff ein und drücke auf OK und dann soll er mir den Begriff suchen und wie beim Word dahin springen und wenn mehrerere Übereinstimmungen gefunden wurden weitersuchen anbieten. Wie mache ich das? Das Textfeld und den OK Button habe ich schon.
    schöne Grüße
    Nils
    Ich habe hier mal ein Beispiel wie du Daten von einer CSV in eine DGV bekommst. Und umgekehrt.

    Schau dir die beiden Routinen mal an. Vieleicht erkennst du ja wie man durch ein DGV druchwandert.

    Spoiler anzeigen

    VB.NET-Quellcode

    1. Option Strict Off
    2. Option Explicit On
    3. Imports System.IO
    4. Public Class Form1
    5. Dim Datei As String = "C:\Temp\Test.CSV"
    6. ' Button 1 ist für das Laden
    7. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    8. DataGrid_Laden()
    9. End Sub
    10. ' Button 2 ist für das Speichern
    11. Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    12. DataGrid_Speichern()
    13. End Sub
    14. ' DatagridView speichern
    15. Private Sub DataGrid_Speichern()
    16. Dim Liste As String = Nothing
    17. ' Anzahl der Zeilen
    18. Dim count As Integer = DataGridView1.Rows.Count - 1
    19. For i = 0 To count - 1
    20. ' Anzahl der Spalten
    21. Dim ColumCount As Integer = DataGridView1.ColumnCount - 1
    22. Dim Eintrag As String = Nothing
    23. For g = 0 To ColumCount
    24. If Not g = ColumCount Then
    25. Eintrag += CStr(DataGridView1.Rows(i).Cells(g).Value) & ";"
    26. Else
    27. Eintrag += CStr(DataGridView1.Rows(i).Cells(g).Value)
    28. End If
    29. Next g
    30. Liste += Eintrag & vbCrLf
    31. Next i
    32. Try
    33. IO.File.WriteAllText(Datei, Liste)
    34. Catch ex As Exception
    35. MessageBox.Show("beim speichern ist ein fehler aufgetreten ")
    36. End Try
    37. End Sub
    38. ' DataGridView aus datei lesen und in Grid anzeigen
    39. Private Sub DataGrid_Laden()
    40. If File.Exists(Datei) Then
    41. Dim lines() As String = Nothing
    42. DataGridView1.Rows.Clear()
    43. Me.Cursor = Cursors.AppStarting
    44. 'DataGridView1.AllowUserToAddRows = True
    45. Try
    46. lines = IO.File.ReadAllLines(Datei)
    47. Catch ex As Exception
    48. Me.Cursor = Cursors.Default
    49. Exit Sub
    50. End Try
    51. Dim Menge As Integer = lines.GetLength(Menge) - 1 ' Anzahl der Zeilen ermitteln
    52. For i = 0 To Menge
    53. Dim Eintrag As String = lines(i)
    54. Dim parts() As String = Split(Eintrag, ";")
    55. Dim RowCount As Integer = DataGridView1.RowCount - 1
    56. DataGridView1.Rows.Add()
    57. DataGridView1.BeginEdit(CBool(RowCount))
    58. Dim SplittCount As Integer = parts.Length - 1 ' Anzahl der Einträge in Splitt
    59. If SplittCount >= 0 Then
    60. For g = 0 To SplittCount
    61. DataGridView1.Rows(RowCount).Cells(g).Value = parts(g)
    62. Next g
    63. End If
    64. Next i
    65. DataGridView1.Update()
    66. DataGridView1.EndEdit()
    67. 'DataGridView1.AllowUserToAddRows = False
    68. Me.Cursor = Cursors.Default
    69. End If
    70. End Sub
    71. Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
    72. Form2.Show()
    73. End Sub
    74. Private Sub DataGridView1_CellClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellClick
    75. If Not e.RowIndex < 0 Then
    76. If e.ColumnIndex = 2 Then
    77. Dim ScrollOffset As Integer = DataGridView1.VerticalScrollingOffset
    78. DataGridView1.Rows.RemoveAt(e.RowIndex)
    79. If Not e.RowIndex = DataGridView1.Rows.Count Then
    80. If (ScrollOffset > 0) And (DataGridView1.VerticalScrollingOffset = 0) Then
    81. DataGridView1_CellMouseEnter(DataGridView1, e:=New DataGridViewCellEventArgs(e.ColumnIndex, e.RowIndex - 1))
    82. Else
    83. DataGridView1_CellMouseEnter(DataGridView1, e)
    84. End If
    85. Else
    86. If ScrollOffset = 0 Then
    87. DataGridView1.ClearSelection()
    88. End If
    89. End If
    90. Else
    91. DataGridView1.Item(0, e.RowIndex).Value = Not DataGridView1.Item(0, e.RowIndex).Value
    92. End If
    93. End If
    94. End Sub
    95. Private Sub DataGridView1_CellMouseEnter(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellMouseEnter
    96. DataGridView1.Focus()
    97. If Not e.RowIndex < 0 Then
    98. DataGridView1.Item(2, e.RowIndex).Value = "My.Resources.RuleRemove"
    99. DataGridView1.Rows.Item(e.RowIndex).Selected = True
    100. End If
    101. End Sub
    102. End Class