GridView Liste sortieren

rolaloe

Grünschnabel
Hallo,

ich versuche mich neu in .NET mit Visual Studio.
Zum lernen habe ich mir ein kleines Programm geschrieben das Textdateien einliest und in einer GridView als Tabelle ausgibt.
In dem Programm nutze ich ein Eingabefeld um die Tabellen zu durchsuchen.
Die Ergebnisse werden mit roter Hintergrundfarbe markiert, alle anderen bleiben im Hintergrund weiß.
Ich möchte die Ergebnisse so aussortieren, dass die nicht markierten, also weißen Zeilen, ausgeblendet und nur die rot markierten angezeigt werden.
Nun scheitere ich daran, und bekomme das nicht hin. Ich habe mehrere Versuche gestartet, aber das wird nichts.
Ich habe die Aussortierung in der GridViews versucht.
Ich gebe es zu, ich blicke noch nicht durch.
Kann mir jemand einen Tipp geben wie ich die Sortierung machen muss?

Code:
Imports System.IO
Imports System.Environment
Imports System.Windows.Forms.VisualStyles.VisualStyleElement
Imports System.Data.Common
Public Class MeineCDListe
    Private Sub MeineCDListe_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    End Sub
    Private rnd As Random = New Random
    Private zeile As Object
    Private sAppPath As String
    Private Sub ButtonCover_Click(sender As System.Object, e As System.EventArgs) Handles ButtonCover.Click
        Dim files() = System.IO.Directory.GetFiles("w:\CDs\Cover", "*.jpg")
        Dim index As Integer = rnd.Next(files.Count)
        PictureBoxCover.Image = New Bitmap(files(index))
        DataGridView1.Visible = False
        PictureBoxCover.Visible = True
    End Sub
    Private Sub PictureBoxCover_Click(sender As Object, e As EventArgs) Handles PictureBoxCover.Click
    End Sub
    Private Sub DataGridView1_CellContentClick_1(sender As Object, e As DataGridViewCellEventArgs)
    End Sub
    Private Sub ButtonSuchen_Click_1(sender As Object, e As EventArgs) Handles ButtonSuchen.Click
        DataGridView1.Rows.Clear()
        DataGridView1.Columns.Clear()
        Dim lines As String() =
Microsoft.VisualBasic.Split(My.Computer.FileSystem.ReadAllText(
"W:\CDs\Listen\ARTISTS.txt", System.Text.Encoding.Default),
Microsoft.VisualBasic.vbCrLf)
        With DataGridView1
            .Columns.Add("Interpret", "Interpret")
            '.Columns.Add("Titel", "Titel")
            '.Columns.Add("Genre", "Genre")
            .Columns.Add("Standort", "Standort")
            Dim fields() As String
            For Each line As String In lines
                fields = line.Split(";"c)
                .Rows.Add(fields)
            Next line
        End With
        DataGridView1.Columns("Interpret").Width = 700
        'DataGridView1.Columns("Titel").Width = 340
        'DataGridView1.Columns("Genre").Width = 150
        DataGridView1.Columns("Standort").Width = 230
        DataGridView1(DataGridView1.CurrentCell.ColumnIndex, DataGridView1.CurrentCell.RowIndex).Selected = False
        DataGridView1.Visible = True
        PictureBoxCover.Visible = False
        For Each Iterrow As DataGridViewRow In DataGridView1.Rows
            For Each c As DataGridViewCell In Iterrow.Cells
                If c.Value IsNot Nothing AndAlso c.Value.ToString.Contains(TextBox1.Text) Then
                    c.Style.BackColor = Color.Red
                    c.Style.ForeColor = Color.Yellow
                    DataGridView1.ColumnHeadersDefaultCellStyle.BackColor = Color.SteelBlue
                    DataGridView1.ColumnHeadersDefaultCellStyle.ForeColor = Color.White
                Else
                    c.Style.BackColor = Color.White
                End If
                If c.Style.BackColor = Color.Red Then DataGridView1.CurrentCell = c
            Next
        Next
    End Sub
    Private Sub ButtonListe_Click(sender As Object, e As EventArgs) Handles ButtonListe.Click
        DataGridView1.Rows.Clear()
        DataGridView1.Columns.Clear()
        Dim lines As String() =
Microsoft.VisualBasic.Split(My.Computer.FileSystem.ReadAllText(
"W:\CDs\Listen\SONGS.txt", System.Text.Encoding.Default),
Microsoft.VisualBasic.vbCrLf)
        With DataGridView1
            .Columns.Add("Titel", "Titel")
            .Columns.Add("Interpret", "Interpret")
            .Columns.Add("Album", "Album")
            .Columns.Add("Standort", "Standort")
            Dim fields() As String
            For Each line As String In lines
                fields = line.Split(";"c)
                .Rows.Add(fields)
            Next line
        End With
        DataGridView1.Columns("Titel").Width = 250
        DataGridView1.Columns("Interpret").Width = 250
        DataGridView1.Columns("Album").Width = 260
        DataGridView1.Columns("Standort").Width = 170
        DataGridView1(DataGridView1.CurrentCell.ColumnIndex, DataGridView1.CurrentCell.RowIndex).Selected = False
        DataGridView1.Visible = True
        PictureBoxCover.Visible = False
        For Each Iterrow As DataGridViewRow In DataGridView1.Rows
            For Each c As DataGridViewCell In Iterrow.Cells
                If c.Value IsNot Nothing AndAlso c.Value.ToString.Contains(TextBox1.Text) Then
                    c.Style.BackColor = Color.Red
                    c.Style.ForeColor = Color.Yellow
                    DataGridView1.ColumnHeadersDefaultCellStyle.BackColor = Color.Green
                    DataGridView1.ColumnHeadersDefaultCellStyle.ForeColor = Color.White
                Else
                    c.Style.BackColor = Color.White
                End If
                If c.Style.BackColor = Color.Red Then
                    DataGridView1.CurrentCell = c
                End If
            Next
        Next
    End Sub
    Private Sub ButtonKuenstler_Click(sender As Object, e As EventArgs) Handles ButtonKuenstler.Click
        ' Pfad und DateiName
        Dim Path As String() = Microsoft.VisualBasic.Split(My.Computer.FileSystem.ReadAllText("W:\CDs\Listen\ZUFALLSINTERPRET.txt", System.Text.Encoding.Default), Microsoft.VisualBasic.vbCrLf)
        ' String Varianle für die spätere aufnahme deiner Zeile
        Dim MeineZeile As String = Nothing
        ' Zufallsgenerator
        Dim Zufall As New Random
        ' Deine TextDatei in ein Arry einlesen
        Dim lines() As String = Path
        ' Die Menge der Zeilen aus der TextDatei ermitteln
        Dim Menge As Integer = lines.Count
        ' Zufallszahl zwischen 0 und Menge der Zeilen
        Dim returnValue As Integer = Zufall.Next(0, Menge)
        ' Die Zeile auslesen
        MeineZeile = lines(returnValue)
        ' Die Zeile anzeigen
        RichTextBox1.Text = MeineZeile
    End Sub
    Private Sub RichTextBox1_TextChanged(sender As Object, e As EventArgs) Handles RichTextBox1.TextChanged
    End Sub
    Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged
    End Sub
    Private Sub Label1_Click(sender As Object, e As EventArgs)
    End Sub
    Private Sub TextBox2_TextChanged(sender As Object, e As EventArgs) Handles TextBox2.TextChanged
    End Sub
    Private Sub DataGridView1_CellContentClick(sender As Object, e As DataGridViewCellEventArgs) Handles DataGridView1.CellContentClick
    End Sub
End Class
 

Neue Beiträge

Zurück