IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Petite question à propos des RichTextBox.


Sujet :

VB.NET

  1. #1
    Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Février 2015
    Messages
    169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Février 2015
    Messages : 169
    Points : 60
    Points
    60
    Par défaut Petite question à propos des RichTextBox.
    Bonjour à tous !

    Je me poses une question et j'espère que vous allez pouvoir m'y répondre.
    Je souhaiterais (si cela est possible), entrer un texte (plus ou moins long) dans une RichTextBox.
    Jusque là pas de soucis.
    A coté de celle ci, je positionnerais 1 checkBox qui me demanderais si c'est une réponse à trouver (check) ou non (non check).
    Ce serait pour créer un exercice.
    Dans mon texte (dans la RichTextBox donc), j'aurais donc mon exercice avec les réponses écrites.
    Mon exercice serait du genre :
    "Hello, how are you ?"
    Mon but serait par la suite de masquer le "are" et demander à l'utilisateur de deviner le mot manquant.

    Je voudrais savoir si il était possible dans la RichTextBox, de sélectionner un mot entier (donc ici "are") au simple passage du curseur de la souris ?

    Pour résumer : dans ma phrase "Hello, how are you ?" je veux sélectionner "Hello" quand le curseur y passe dessus, "how" pareil etc...

    Je n'ai rien trouvé sur le net pour le moment.
    Je continue mes recherches dans l'attente de vos lumières .

    Merci d'avance.

  2. #2
    Membre émérite Avatar de mactwist69
    Homme Profil pro
    Développement VB.NET
    Inscrit en
    Janvier 2007
    Messages
    1 707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement VB.NET
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 707
    Points : 2 528
    Points
    2 528
    Par défaut
    Bonjour cher Jeano,

    Je vois trois questions dans le sujet, qui ne sont pas forcement les mêmes demandes... du coup je comprends pas trop.

    Il y a donc :

    1) Mettre un checkbox (au bout d'une ligne?) pour "qui me demanderais si c'est une réponse à trouver"... C'est à dire ?
    Un checkBox qui dit si oui ou non on doit répondre ?

    2) "Mon but serait par la suite de masquer le "are" et demander à l'utilisateur de deviner le mot manquant"
    -> Ok donc un texte à trou...
    puis : "de sélectionner un mot entier (donc ici "are") au simple passage du curseur de la souris"
    -> C'est à dire ? Sélectionner le mot "are" dans une liste de mots disponibles ?

    3) "dans ma phrase "Hello, how are you ?" je veux sélectionner "Hello" quand le curseur y passe dessus, "how" pareil etc..."
    -> Précision : Sélectionner un mot au passage : quand la souris passe au dessus ? ou il faut cliquer ?
    Et ça n'a pas l'air de correspondre à la description de l'exercice à trou... il faut pouvoir sélectionner n'importe quel mot d'une phrase ?

    Il faudrait décrire la problématique simplement, mais précisément. Et ainsi trouver LA bonne solution technique qui correspond au besoin.
    Il faut donc décrire ce que dans l'idéale vous voudriez.
    L'avenir appartient à ceux... dont les ouvriers se lèvent tôt. (Coluche)

  3. #3
    Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Février 2015
    Messages
    169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Février 2015
    Messages : 169
    Points : 60
    Points
    60
    Par défaut
    Bonjour
    Non en fait la CheckBox me permet de dire si quand je clique sur le mot sélectionné c'est pour dire au programme que c'est CE mot que l'utilisateur devra trouver où non. C'est juste pour détailler pourquoi je cherches à faire la sélection de mots dans la richtextbox !

    Partant de là je chercherais déjà comment faire pour écrire dans un fichier ma 1ere ligne sans le mot sélectionné qui quant à lui ira ce mettre dans la partie "réponse" de mon fichier.

    en gros mon fichier sera (xml encore)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <Exercice ligne1="Hello, how mot_manquant you ?" réponse="are"/>
    Mais pour commencer je voudrais juste savoir si sélectionner le mot que survole le curseur de la souris est réalisable assez simplement !

    Cette partie n'est pas la partie de l'exercice c'est la partie conception de l'exercice !

    Sélectionner donc le mot au passage et lors du clic garder cette sélection et si la checkbox est cochée alors c'est ce mot que l'utilisateur devra trouver sinon pour l'instant ne rien faire !

  4. #4
    Membre émérite Avatar de mactwist69
    Homme Profil pro
    Développement VB.NET
    Inscrit en
    Janvier 2007
    Messages
    1 707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement VB.NET
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 707
    Points : 2 528
    Points
    2 528
    Par défaut
    C'est tout à fait possible en effet :

    1) En utilisant l'évènement MouseMove du RichTextBox, on détecte le mouvement de souris.

    2) Ensuite dans cet évvènement, on récupère la location du cursor (grâce au paramètre "e" de l'évènement)

    3) Avec les coordonnées du cursor et la méthode GetCharIndexFromPosition du RichTextBox, on peut récupérer le CharIndex

    4) Ensuite avec le CharIndex, on récupère la ligne avec la méthode GetLineFromCharIndex du richtextbox, et a fortiori le mot.

    VA falloir bidouiller un peu.
    L'avenir appartient à ceux... dont les ouvriers se lèvent tôt. (Coluche)

  5. #5
    Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Février 2015
    Messages
    169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Février 2015
    Messages : 169
    Points : 60
    Points
    60
    Par défaut
    Humm oui ok petite usine à gaz ^^
    Merci j'essaye de coder tout ça cet aprem et vous tiens au jus !

  6. #6
    Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Février 2015
    Messages
    169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Février 2015
    Messages : 169
    Points : 60
    Points
    60
    Par défaut
    Bon ben je bloques...

    J'ai ce code :
    Code : 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
    Public Class Form1
        Dim curseur_x_y As New Point
        Dim charindex As Integer = 0
        Dim line As Integer = 0
        Dim charindex1 As Integer = 0
     
     
        Private Sub RichTextBox1_MouseMove(sender As Object, e As MouseEventArgs) Handles RichTextBox1.MouseMove
            curseur_x_y = e.Location
            charindex = RichTextBox1.GetCharIndexFromPosition(curseur_x_y)
            charindex1 = charindex
            line = RichTextBox1.GetLineFromCharIndex(charindex)
            While charindex > 0 And Char.IsLetter(RichTextBox1.Text(charindex))
                charindex -= 1
            End While
     
            RichTextBox1.Select(charindex, charindex1)
        End Sub
     
    End Class
    J'essaye de comprendre comment lui dire qu'il faut partir d'un endroit ou il y a un " " ou un "" pour definir l'index de départ (le debut de mon mot donc) et que le suivant " " est un charactère avant = fin de mon mot et entre on selectionne mais j'ai beaucoup de mal à trouver comment coder cette partie .

  7. #7
    Membre émérite Avatar de mactwist69
    Homme Profil pro
    Développement VB.NET
    Inscrit en
    Janvier 2007
    Messages
    1 707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement VB.NET
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 707
    Points : 2 528
    Points
    2 528
    Par défaut
    C'est pas mal du tout.

    La méthode Select a besoin de l'index de début ET de la longueur.

    Donc la boucle que tu fais ressemblerait plutôt à :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    While charindex > 0 or RichTextBox1.Text(charindex) <> " "
           charindex -= 1
    End While
    Ensuite il faudrait faire un boucle de longueur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    charindex2 = charindex
    dim length as integer = 0
    While RichTextBox1.Text(charindex2) <> " "
           charindex2 += 1
           length  += 1
    End While
    puis

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RichTextBox1.Select(charindex, lenght)
    Je peux pas tester le code, je te laisse tester.
    Et plus tard, il faudrait quand même voir si il y a mieux à faire avec les tests : il faut chercher les bugs : Si c'est le dernier mot, le premier etc... et adapter
    L'avenir appartient à ceux... dont les ouvriers se lèvent tôt. (Coluche)

  8. #8
    Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Février 2015
    Messages
    169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Février 2015
    Messages : 169
    Points : 60
    Points
    60
    Par défaut
    Merci !
    Mais avec ce code quelque chose m'échape :

    Code : 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
     
        Private Sub RichTextBox1_MouseMove(sender As Object, e As MouseEventArgs) Handles RichTextBox1.MouseMove
            curseur_x_y = e.Location
            charindex = RichTextBox1.GetCharIndexFromPosition(curseur_x_y)
            line = RichTextBox1.GetLineFromCharIndex(charindex)
     
            'While charindex > 0 And Char.IsLetter(RichTextBox1.Text(charindex))
            '    charindex -= 1
            'End While
     
            While charindex > 0 Or RichTextBox1.Text(charindex) <> " "
                charindex -= 1
            End While
     
            charindex2 = charindex
            Dim length As Integer = 0
            While RichTextBox1.Text(charindex2) <> " "
                charindex2 += 1
                length += 1
            End While
            RichTextBox1.Select(charindex, length)
        End Sub
    Il me plante de suite avec un out of range : mon charindex passe à -1 (il est à 0 lors qu premier passage dans la boucle while et même avant d'arriver dans la boucle), et quand je fais avec l'autre code (le and au lieu du or), mon charindex ne reste pas à 0. J'ai regardé en pas à pas avec différentes positions au curseur mais il reste toujours à 0 avant d'entrer dans ma boucle... Je cherches plus loin !

  9. #9
    Membre émérite Avatar de mactwist69
    Homme Profil pro
    Développement VB.NET
    Inscrit en
    Janvier 2007
    Messages
    1 707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement VB.NET
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 707
    Points : 2 528
    Points
    2 528
    Par défaut
    Question : ceci te retourne toujours 0, même si tu passes la souris sur un mot au milieu du richtextbox ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    charindex = RichTextBox1.GetCharIndexFromPosition(curseur_x_y)
    Si c'est la cas, ce n'es pas normal.


    ET sinon oui la boucle ne va pas. Le Or ne va pas.
    C'est plutôt un AndAlso qu'il faut, car on ne veut JAMAIS que charindex soit inférieur à 0 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    While charindex > 0 Andalso RichTextBox1.Text(charindex) <> " "
          charindex -= 1
    End While
    L'avenir appartient à ceux... dont les ouvriers se lèvent tôt. (Coluche)

  10. #10
    Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Février 2015
    Messages
    169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Février 2015
    Messages : 169
    Points : 60
    Points
    60
    Par défaut
    Bonjour !
    Je ne connaissais pas ce"andalso"
    En fait si j'ai bien compris ça permet de verifier la seconde itération si la premiere est vrai deja c'est ça ?

    Et oui étrangement avec un or il reste à 0 mais avec and (ou ici andalso), il fonctionne mais il ne me sélectionne que le premier mot !

  11. #11
    Membre émérite Avatar de mactwist69
    Homme Profil pro
    Développement VB.NET
    Inscrit en
    Janvier 2007
    Messages
    1 707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement VB.NET
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 707
    Points : 2 528
    Points
    2 528
    Par défaut
    C'est ça pour le AndAlso, ça permet de ne pas tester la deuxième condition si la première est fausse (tout dépend de comment on voit les chose).


    Et donc avec le AndAlso, il sélectionne systématiquement le premier mot ?
    Ca veut dire que RichTextBox1.Text(charindex) <> " " est toujours faux ?

    Au pas à pas regarde à chaque tour de boucle ce que te renvois RichTextBox1.Text(charindex)
    (Mets un espion sur l'élément RichTextBox1.Text(charindex))
    L'avenir appartient à ceux... dont les ouvriers se lèvent tôt. (Coluche)

  12. #12
    Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Février 2015
    Messages
    169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Février 2015
    Messages : 169
    Points : 60
    Points
    60
    Par défaut
    non en vrai il me sélectionne le premier mot oui mais après quand je bouge le curseur de la souris, mon curseur sur la richtextbox ce déplace aussi d'espaces en espaces (genre ma phrase est "bonjour ça va ?" mon curseur si je me place au début me sélectionne bonjour et si je déplace, me place dans l'espace entre ca et le prochain espace si je déplace encore ma souris !

    J'ai modifié le code du coup :
    Code : 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
     Private Sub RichTextBox1_MouseMove(sender As Object, e As MouseEventArgs) Handles RichTextBox1.MouseMove
            curseur_x_y = e.Location
            charindex = RichTextBox1.GetCharIndexFromPosition(curseur_x_y)
            line = RichTextBox1.GetLineFromCharIndex(charindex)
     
            While charindex > 0 AndAlso RichTextBox1.Text(charindex) <> " "
                charindex -= 1
            End While
     
            charindex2 = charindex
            Dim length As Integer = 0
            While RichTextBox1.Text(charindex2 + 1) <> " "
                charindex2 += 1
                length += 1
            End While
            RichTextBox1.Select(charindex, length)
     
            If clic Then
                Label1.Text = RichTextBox1.SelectedText
                clic = False
            Else
     
            End If
        End Sub
    Et là hormis le mot final où il me trouve une erreur, il me sélectionne "presque" le mot sur lequel il ce trouve :
    en vrai il me sélectionne le 1er mot correctement mais les autres, par exemple pour ma phrase "Bonjour ça va" il me sélectionne Bonjour correctement si mon curseur de souris est dessus,en revanche si je me positione sur "ça" il va me sélectionner " ç", un décalage de -1 en gros !

    quand à "va", il me marque un out of range si je me positionne après le "v" et il me sélectionne du coup " v" !
    voila voila ^^

  13. #13
    Membre émérite Avatar de mactwist69
    Homme Profil pro
    Développement VB.NET
    Inscrit en
    Janvier 2007
    Messages
    1 707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement VB.NET
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 707
    Points : 2 528
    Points
    2 528
    Par défaut
    En effet la deuxième boucle va s'incrémenter jusqu'à avoir un espace...

    Il faut donc faire un test avec AndAlso sur la limite (comme pour le < 0 )
    pour le "ç", je sais pas trop il faudrait regarder au pas-à-pas dans la boucle pourquoi il ne va pas jusqu'au "a".
    (jai enlever le +1 mais on fait lenght +1 après la boucle, ça pourrait arranger le truc...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    While charindex2 < RichTextBox1.Text.Lenght Andalso RichTextBox1.Text(charindex2) <> " "
                charindex2 += 1
                length += 1
            End While
     
    length += 1
    L'avenir appartient à ceux... dont les ouvriers se lèvent tôt. (Coluche)

  14. #14
    Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Février 2015
    Messages
    169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Février 2015
    Messages : 169
    Points : 60
    Points
    60
    Par défaut
    Oui j'avais trouvé pour le length+1 vu qu'il me décalais d'1 chariot (je sais pas si c'est le bon terme) vers la gauche il me faut le décaler d'1 vers la droite !
    cela dit j'ai du coup une autre question qui ce réveille :
    avec le andalso, on regarde si la valeur suivante est vrai uniquement si la valeur précédente est vrai ! Mais un and signifie et en francais ????
    Donc si la valeur une est vrai Et la valeur 2 est Vrai alors on entre dans la condition ?????
    Donc pourquoi mettre un andalso??? il faut que la 1ere valeur et la seconde valeur soit vrai pour entrer dans le si sinon c'est un or ??? (ou???)
    Alors pourquoi inventer le andalso ?

    Pour ce qui est du code à présent il me sélectionne juste l'espace et pas le mot sans espace, sauf le premier mot qu'il me sélectionne avec l'espace qui le suis (exemple "Bonjour " et pas "Bonjour").
    J'essaye de comprendre un peut plus car la j'avoue que j'ai un peut de mal a suivre

    Faut que je m'y penche dessus correctement !!!

  15. #15
    Membre émérite Avatar de mactwist69
    Homme Profil pro
    Développement VB.NET
    Inscrit en
    Janvier 2007
    Messages
    1 707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement VB.NET
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 707
    Points : 2 528
    Points
    2 528
    Par défaut
    Citation Envoyé par Jeano81 Voir le message
    Oui j'avais trouvé pour le length+1 vu qu'il me décalais d'1 chariot (je sais pas si c'est le bon terme) vers la gauche il me faut le décaler d'1 vers la droite !
    cela dit j'ai du coup une autre question qui ce réveille :
    avec le andalso, on regarde si la valeur suivante est vrai uniquement si la valeur précédente est vrai ! Mais un and signifie et en francais ????
    Donc si la valeur une est vrai Et la valeur 2 est Vrai alors on entre dans la condition ?????
    Donc pourquoi mettre un andalso??? il faut que la 1ere valeur et la seconde valeur soit vrai pour entrer dans le si sinon c'est un or ??? (ou???)
    Alors pourquoi inventer le andalso ?
    Et bien voici pourquoi :

    Si on fait ça :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    While charindex2 < RichTextBox1.Text.Lenght And RichTextBox1.Text(charindex2) <> " "
    Et que charindex2 se situe déjà sur le dernier caractère...
    Avec le "And", VB va vouloir vérifier les deux conditions :

    Bien que la première condition sera fausse (charindex2 = RichTextBox1.Text.Lenght), il va QUAND même étudier la deuxième condition. C'est le "And".

    Du coup il fait quoi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RichTextBox1.Text(charindex2) <> " "
    et ici RichTextBox1.Text(charindex2) va lever une exception, car si tu as 100 caractères dans le texte, et que charindex2 = 100
    RichTextBox1.Text(100) n'existe pas. Le maximum est RichTextBox1.Text(99) (puisque le premier est RichTextBox1.Text(0) et non 1.

    Donc c'est l'exemple typique de l'utilisation du "AndAlso" :

    N'étudier la deuxième condition que si la première est juste CAR la deuxième va être en erreur si la première est fausse.
    L'avenir appartient à ceux... dont les ouvriers se lèvent tôt. (Coluche)

  16. #16
    Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Février 2015
    Messages
    169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Février 2015
    Messages : 169
    Points : 60
    Points
    60
    Par défaut
    ah d'accord ! Donc si je comprends bien :
    avec And, on contrôle les 2 valeurs vrai ou fausse (un peut comme on passe dans une boucle avec un vec un AndAlso, on controle la premiere valeur, si elle est fausse alors on sort
    et avec un or on controle les 2 valeur vrai ou fausse et on execute le code si l'une ou l'autre est vrai !
    J'ai bon ?

  17. #17
    Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Février 2015
    Messages
    169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Février 2015
    Messages : 169
    Points : 60
    Points
    60
    Par défaut
    haha j'ai trouvé pour ma 1ere ligne ce code fonctionne
    pour la ligne 2 il ne me reconnais pas ma ligne 2 comme nouvelle ligne et me sélectionne aussi le dernier mot de ma 1ere ligne ! Sinon pour une simple ligne ce code fonctionne

    va y arriver xD

    Code : 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
    28
    29
    Private Sub RichTextBox1_MouseMove(sender As Object, e As MouseEventArgs) Handles RichTextBox1.MouseMove
            curseur_x_y = e.Location
            charindex = RichTextBox1.GetCharIndexFromPosition(curseur_x_y)
            line = RichTextBox1.GetLineFromCharIndex(charindex)
     
            While charindex > 0 AndAlso RichTextBox1.Text(charindex) <> " "
                charindex -= 1
            End While
     
            If charindex <> 0 Then
                charindex += 1
            End If
     
            charindex2 = charindex
            Dim length As Integer = 0
            While charindex2 < RichTextBox1.Text.Length AndAlso RichTextBox1.Text(charindex2) <> " "
                charindex2 += 1
                length += 1
            End While
     
            RichTextBox1.Select(charindex, length)
     
            If clic Then
                Label1.Text = RichTextBox1.SelectedText
                clic = False
            Else
     
            End If
        End Sub

  18. #18
    Membre émérite Avatar de mactwist69
    Homme Profil pro
    Développement VB.NET
    Inscrit en
    Janvier 2007
    Messages
    1 707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement VB.NET
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 707
    Points : 2 528
    Points
    2 528
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    vec un AndAlso, on controle la premiere valeur, si elle est fausse alors on sort 
    et avec un or on controle les 2 valeur vrai ou fausse et on execute le code si l'une ou l'autre est vrai !
    J'ai bon ?
    Tout à fait, You got it
    L'avenir appartient à ceux... dont les ouvriers se lèvent tôt. (Coluche)

  19. #19
    Membre émérite Avatar de mactwist69
    Homme Profil pro
    Développement VB.NET
    Inscrit en
    Janvier 2007
    Messages
    1 707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement VB.NET
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 707
    Points : 2 528
    Points
    2 528
    Par défaut
    mais en fait,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     line = RichTextBox1.GetLineFromCharIndex(charindex)
    Ca sert à rien ça finalement non ?

    Tu n'utilises pas la ligne après...
    L'avenir appartient à ceux... dont les ouvriers se lèvent tôt. (Coluche)

  20. #20
    Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Février 2015
    Messages
    169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Février 2015
    Messages : 169
    Points : 60
    Points
    60
    Par défaut
    pour l'instant non mais je m'en servirais ptet pour enregistrer le mot sélectionné à la bonne place dans mon fichier plus tard !
    Et je réfléchis en ce moment à l'utiliser aussi pour dire qu'à chaque ligne mon index 0 est remplacé par l'index de début de ligne !
    (c'est ptet pas clair la xD)
    en gros si dans ma richtextbox j'ai

    "Ligne 1
    Ligne 2"

    mon code je pense devrait être du style

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Private Sub RichTextBox1_MouseMove(sender As Object, e As MouseEventArgs) Handles RichTextBox1.MouseMove
            curseur_x_y = e.Location
            charindex = RichTextBox1.GetCharIndexFromPosition(curseur_x_y)
            line = RichTextBox1.GetLineFromCharIndex(charindex)
     
            While charindex >  début_de_ligne AndAlso RichTextBox1.Text(charindex) <> " "
                charindex -= 1
            End While
     
            If charindex <> 0  Then
                charindex += 1
            End If
    'blabla...
    où début de ligne est en fait mon index de début de ligne quoi !

    où si ça marche pas il me faut chercher mon index de fin de ligne et le placer ici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     While charindex2 < RichTextBox1.Text.Length AndAlso RichTextBox1.Text(charindex2) <> " "
                if not findeligne then
                charindex2 += 1
                length += 1
                end if
            End While
    un truc du genre !! i think

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 9
    Dernier message: 23/07/2014, 13h11
  2. [Javamail] Petite question à propos des Flags
    Par Hellnino18 dans le forum API standards et tierces
    Réponses: 1
    Dernier message: 26/05/2009, 08h49
  3. Petite question à propos d'une requete
    Par ViBy dans le forum Langage SQL
    Réponses: 4
    Dernier message: 15/09/2004, 12h21
  4. Une question à propos des thread
    Par tscoops dans le forum C++Builder
    Réponses: 4
    Dernier message: 07/11/2003, 14h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo