none
(Visual Studio 8) Enlever la sélection de la première ligne d'une DATAGRIDVIEW RRS feed

  • Question

  • Bonjour,

    J'ai un DATAGRIDVIEW, et quand je l'affiche, je neutralise la sélection

    Me.dgvLigne.ClearSelection()

    Lors de l'apparition de l'écran, je n'ai aucune ligne sélectionnée

    J'ai une TEXTBOX pour faire une recherche

    Si trouvé, la ligne trouvée est visible et sélectionnée

    Si non trouvée, aucune ligne n'est sélectionnée

    Mais quand j'efface la TEXTBOX, la première ligne est sélectionnée !

    Comment faire pour neutraliser cette sélection ?

        Private Sub txtRecherchenom_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtRecherchenom.TextChanged
            If dgvLigne.Rows.Count > 0 Then
                Me.dgvLigne.ClearSelection()
                Dim wRecherche As String = "" : Dim wTrouve As Integer = 0
                For Me.wInd = 0 To dgvLigne.Rows.Count - 1
                    Me.dgvLigne.Rows(wInd).Selected = False
                    valCellule = dgvLigne.Item(13, Me.wInd)  '   Attention, prendre le nom du tri
                    wRecherche = UCase(valCellule.Value.ToString)
                    wTrouve = InStr(wRecherche, UCase(Me.txtRecherchenom.Text))
                    If wTrouve = 1 Then
                        'dgvLigne.FirstDisplayedScrollingRowIndex = wInd
                        'dgvLigne.CurrentRow.Selected = True
                        dgvLigne.Item(0, wInd).Selected = True
                        Exit Sub
                    Else
                        Me.dgvLigne.ClearSelection()
                        Me.dgvLigne.Rows(wInd).Selected = False
                    End If
                Next
                Me.dgvLigne.Rows(0).Selected = False
            End If
        End Sub
    

    Cordialement

    SC


    Cordialement SC

    lundi 24 août 2015 08:32

Réponses

  • Bonjour,

    Si le contenu de votre TextBox est une chaîne de caractères vide, il vaut mieux éviter d’utiliser cette ligne:

    wTrouve = InStr(wRecherche, UCase(Me.txtRecherchenom.Text))

    Dans ce cas, vous pouvez se servir du code en bas:

    If Me.txtRecherchenom.Text = ""
    wTrouve = 0
    Else
    wTrouve = InStr(wRecherche, UCase(Me.txtRecherchenom.Text))
    End If

    Merci de nous tenir au courant.

    Cordialement,
    Dimitar

    mardi 25 août 2015 08:31
    Modérateur

Toutes les réponses

  • Bonjour,

    Si le contenu de votre TextBox est une chaîne de caractères vide, il vaut mieux éviter d’utiliser cette ligne:

    wTrouve = InStr(wRecherche, UCase(Me.txtRecherchenom.Text))

    Dans ce cas, vous pouvez se servir du code en bas:

    If Me.txtRecherchenom.Text = ""
    wTrouve = 0
    Else
    wTrouve = InStr(wRecherche, UCase(Me.txtRecherchenom.Text))
    End If

    Merci de nous tenir au courant.

    Cordialement,
    Dimitar

    mardi 25 août 2015 08:31
    Modérateur
  • Bonjour,

    Merci ! Je suis vraiment idiot ....

    Voici le "bon" code

    Private Sub txtRecherchenom_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtRecherchenom.TextChanged
            Dim wRecherche As String = "" : Dim wTrouve As Integer = 0
            If Me.txtRecherchenom.Text = "" Then
                wTrouve = 0
                Exit Sub
            End If
            If dgvLigne.Rows.Count > 0 Then
                For Me.wInd = 0 To dgvLigne.Rows.Count - 1
                    Me.dgvLigne.Rows(wInd).Selected = False
                    valCellule = dgvLigne.Item(13, Me.wInd)  '   Attention, prendre le nom du tri
                    wRecherche = UCase(valCellule.Value.ToString)
                    wTrouve = InStr(wRecherche, UCase(Me.txtRecherchenom.Text))
                    If wTrouve = 1 Then
                        dgvLigne.FirstDisplayedScrollingRowIndex = wInd
                        dgvLigne.Item(0, wInd).Selected = True
                        Exit Sub
                    End If
                Next
            End If
    End Sub

    Cordialement

    SC


    Cordialement SC

    mardi 25 août 2015 15:34