Bonjour,


Je ne parviens pas à résoudre un problème de recherche dans un DatagridView.

Alors voilà, j'ai un Datagrid qui m'affiche les données venant d'une base de donnée locale (un fichier .mdf).

J'ai placé un TextBox et un Bouton de recherche afin de mettre en évidence le texte recherché à chaque fois qu'il le trouve dans le Datagrid, quelque soit la colonne.

Lorsque j'indique une valeur dans le champ de texte et que je lance la recherche, toutes les cellules contenant le texte recherché sont bien sélectionnées.

Par contre, j'ai également prévu le fait de ne pas trouver la valeur et de l'indiquer avec un message, mais cela ne fonctionne pas.

Après de longues recherches, j'ai fini par comprendre que mon script finissait dans le "Catch ex As Exception" à cause de la dernière ligne du Datagrid qui est vide.

J'ai tenté de passer par des conditions supplémentaires, comme la fonction While afin de ne pas aller à cette ligne vide mais cela ne marche pas.

Quelqu'un pourrait-il m'aider ?

Voici mon code :

Code VB-NET : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
 
 
    Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
        Try
            DataGridView1.ClearSelection()
            Dim Trouv As String
            Trouv = 0  'je ne sais si il y a une meilleure methode que cette variable "Trouv" pour gérer la recherche
 
            For Each myRow As DataGridViewRow In DataGridView1.Rows
                For Each myCell As DataGridViewCell In myRow.Cells
                    If InStr(myCell.Value.ToString, TextBox4.Text) Then
                        myCell.Selected = True
                        Trouv = 1
                    End If
                Next
            Next
 
            'Apparemment n'arrive pas à la ligne suivante car sortie du Try !
            TextBox4.Text = ""
            If Trouv = 0 Then
                MessageBox.Show("Valeur non trouvée")
            End If
        Catch ex As Exception
            Exit Sub
        End Try
        TextBox4.Text = ""
    End Sub