[VB10][AIDE] Fonction rechercher dans une textbox.

xGodModzPTG Messages postés 15 Date d'inscription mercredi 12 janvier 2011 Statut Membre Dernière intervention 26 février 2011 - 12 janv. 2011 à 02:26
xGodModzPTG Messages postés 15 Date d'inscription mercredi 12 janvier 2011 Statut Membre Dernière intervention 26 février 2011 - 12 janv. 2011 à 17:13
BOnjour à tous

Comme indiqué dans le titre, je recherche une solution à mon problème qui est, mettre une fonction rechercher pour une textbox. Donc enfaite je voudrait que quand on clique sur le boutton une petite fenêtre s'ouvre, on rentre le texte à rechercher on clique sur OK et sa nous trouve le texte dans la textbox1. J'ai tester pas mal de codes, rechercher pendant 2H sur internet et sur se site mais en vins... j'arrive pas a trouve un codes qui fasse ceci..

PS: Je suis débutant en VB...

Si vous pouviez m'aider SVP sa serais sympas ;)

Merci d'avance

5 réponses

AlKatou Messages postés 95 Date d'inscription vendredi 7 février 2003 Statut Membre Dernière intervention 28 novembre 2017
12 janv. 2011 à 08:47
salut,

Voici une possible solution, bonne continuation

alka

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click


        ' Demande du texte recherché
        Dim sTextToFind As String = InputBox("Texte à rechercher :")


        If sTextToFind <> "" Then

            ' Recherche le 1er endroit où le texte se trouve
            Dim iPos As Long = InStr(TextBox1.Text, sTextToFind)

            ' Si iPos>0 Alors Texte recherché trouvé
            If iPos > 0 Then

                ' Sélectionne le texte retrouvé (mise en surbrillance)
                TextBox1.SelectionStart = iPos - 1
                TextBox1.SelectionLength = IIf(iPos > 0, Len(sTextToFind), 0)
            End If
        End If

        ' Permet de voir la mise en surbrillance
        TextBox1.Focus()


    End Sub
0
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
12 janv. 2011 à 12:22
Bonjour,

Je complète le code de AlKatou avec un usage plus ".NET".
Évitez d'utiliser en .NET les reliquats de la compatibilité VB6 (idéalement, retirez des imports automatiques Microsoft.VisualBasic).

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        ' Demande du texte recherché
        Dim sTextToFind As String = InputBox("Texte à rechercher :")

        If sTextToFind <> "" Then

            ' Recherche le 1er endroit où le texte se trouve
            Dim iPos As Integer = TextBox1.Text.IndexOf(sTextToFind)

            ' Si iPos>0 Alors Texte recherché trouvé
            If iPos > 0 Then

                ' Sélectionne le texte retrouvé (mise en surbrillance)
                TextBox1.SelectionStart = iPos
                TextBox1.SelectionLength = sTextToFind.Length
            End If
        End If

        ' Permet de voir la mise en surbrillance
        TextBox1.Focus()

    End Sub


Mon site
0
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
12 janv. 2011 à 12:22
Petite erreur :
If iPos > 0 Then
devient
If iPos => 0 Then
0
xGodModzPTG Messages postés 15 Date d'inscription mercredi 12 janvier 2011 Statut Membre Dernière intervention 26 février 2011
12 janv. 2011 à 17:11
Merci beaucoup, les 2 technique marche impécable.

J'ai juste rajouter un petit message que quand la recherche n'aboutis pas sa met un message d'erreur.

Je met le code pour les autres sa peut être utile ;) :

    Private Sub RechercherDansMissionsToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RechercherDansMissionsToolStripMenuItem.Click

        ' Demande du texte recherché
        Dim sTextToFind As String = InputBox("Texte à rechercher :")


        If sTextToFind <> "" Then

            ' Recherche le 1er endroit où le texte se trouve
            Dim iPos As Long = InStr(TextBox1.Text, sTextToFind)

            ' Si iPos>0 Alors Texte recherché trouvé
            If iPos > 0 Then

                ' Sélectionne le texte retrouvé (mise en surbrillance)
                TextBox1.SelectionStart = iPos - 1
                TextBox1.SelectionLength = IIf(iPos > 0, Len(sTextToFind), 0)
            Else
                MsgBox("Texte non trouvé", vbCritical, "Erreur")
            End If
        End If


Merci encore ;) Juste une dernière question : est-il possible de faire un système de ligne avec un label pour nous indiquer sur quel ligne se trouve notre curseur?

        ' Permet de voir la mise en surbrillance
        TextBox1.Focus()
    End Sub
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
xGodModzPTG Messages postés 15 Date d'inscription mercredi 12 janvier 2011 Statut Membre Dernière intervention 26 février 2011
12 janv. 2011 à 17:13
Oups dsl je me suis tromper en écrivant dessus... Je pensse que vous avez comprit
0
Rejoignez-nous