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 :

curseur au début du texte sélectionné


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2004
    Messages : 54
    Par défaut curseur au début du texte sélectionné
    Bonjour,

    Pour sélectionner un bout de texte dans une TextBox, on fait

    TextBox1.SelectionStart = (début de la sélection)
    TextBox1.SelectionLength = (longeur du texte sélectionné)
    et le curseur se place directement et automatiquement APRES la sélection.

    Pour placer le curseur dans une TextBox, on fait

    TextBox1.SelectionStart = (début de la sélection)
    TextBox1.SelectionLength = 0
    et le curseur se place APRES la sélection (de longueur nulle)

    Mon problème = Comment placer le curseur AVANT la sélection ?

    Car je code une recherche (inversée = vers le début du texte) d'une chaîne entre la position actuelle du curseur et le début du texte. Si cette chaîne est trouvée, elle est sélectionnée et le curseur doit se placer AVANT la sélection pour indiquer visuellement que la nouvelle recherche commence de cette nouvelle position du curseur vers le début du texte.

    Or, si je sélectionne (par programmation), le curseur se place APRES la sélection !

    NB : Mais, si je sélectionne avec souris (manuellement) vers le début du texte, le curseur se place bien avant la sélection ...

    Comment obtenir ce même comportement par programmation ?

    D'avance merci pour vos solutions ou suggestions.

  2. #2
    Membre émérite

    Homme Profil pro
    Inscrit en
    Mars 2012
    Messages
    691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Israël

    Informations forums :
    Inscription : Mars 2012
    Messages : 691
    Par défaut
    Salut

    pas très clair
    tu cherches un mot dans un textbox dont le text se lit de droite à gauche ?

  3. #3
    Membre expérimenté
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Par défaut
    Pour un controle de type Textbox nommé tb :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
            tb.Select(10, 0)
            SendKeys.Send("+{LEFT}+{LEFT}+{LEFT}+{LEFT}+{LEFT}")
    où 10 est l'index du dernier caractère sélectionné + 1.

    Ici j'ai selectionné 5 caractères. Pour sélectionner un nombre de caractères variable, il faut utiliser une boucle.

    Griftou.

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2004
    Messages : 54
    Par défaut curseur AVANT le texte sélectionné
    @ shayw : Non, TextBox1.RightToLeft = No

    @ griftou : La proposition est astucieuse. La méthode SendKeys.send("{Left}") déplace bien le curseur à gauche, mais malheureusement elle fait disparaître automatiquement la sélection ...

    Même le bloc-notes de Windows semble buggé !

    Protocole 1 : Ouvrez le bloc-notes, tapez une seule lettre (par exemple "a"), reculer d'une position le curseur, la position du curseur est donc "Ln 1, Col 1", faites une recherche, optez pour "Bas", cliquez sur le bouton "Suivant", réponse = "a" est sélectionné (et le curseur clignote APRES la sélection).
    Il trouve l'occurence placée juste à droite du curseur. ( comportement normal )

    Protocole 2 : Ouvrez le bloc-notes, tapez une seule lettre (par exemple "a"), la position du curseur est donc "Ln 1, Col2", faites une recherche, optez pour "Haut", cliquez sur le bouton "Suivant", réponse = " Impossible de trouver "a" ".
    Il ne trouve pas l'occurence placée juste à gauche du curseur ! ( comportement anormal, à mes yeux )

    C'est notamment pour corriger ce comportement que je code un nouveau éditeur de texte. Mais, pour y parvenir je dois résoudre le problème suivant :

    Comment placer le curseur AVANT la sélection ? ( en maintenant l'affichage de la sélection )

  5. #5
    Membre émérite

    Homme Profil pro
    Inscrit en
    Mars 2012
    Messages
    691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Israël

    Informations forums :
    Inscription : Mars 2012
    Messages : 691
    Par défaut
    Protocole 2 : Ouvrez le bloc-notes, tapez une seule lettre (par exemple "a"), la position du curseur est donc "Ln 1, Col2", faites une recherche, optez pour "Haut", cliquez sur le bouton "Suivant", réponse = " Impossible de trouver "a" ".
    Il ne trouve pas l'occurence placée juste à gauche du curseur ! ( comportement anormal, à mes yeux )
    chez moi il trouve bien la lettre a

  6. #6
    Membre expérimenté
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Par défaut
    Citation Envoyé par nanar21 Voir le message
    @ griftou : La proposition est astucieuse. La méthode SendKeys.send("{Left}") déplace bien le curseur à gauche, mais malheureusement elle fait disparaître automatiquement la sélection ...
    chez moi cela fonctionne correctement en laissant la sélection.

    Peut-on voir tout votre code concernant cette sélection ?

    Griftou.

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2004
    Messages : 54
    Par défaut bug du Bloc-notes de Windows
    @ shayw :

    Protocole 2 (corrigé) : Ouvrez le bloc-notes (dans un environnement où l'écriture va de gauche à droite), tapez une seule lettre (par exemple "a"), la position du curseur est donc "Ln 1, Col2", faites une recherche, dans le champ Rechercher, tapez "a", optez pour "Haut", cliquez sur le bouton "Suivant", réponse = " Impossible de trouver "a" ".

    Voir ce screenshot : http://ledru.be/divers/bugBlocNoteWindows.JPG

Discussions similaires

  1. Comment modifier la couleur du texte sélectionné ?
    Par VincentR dans le forum Composants VCL
    Réponses: 4
    Dernier message: 14/06/2005, 22h29
  2. [API window]Retrouver le texte sélectionner
    Par sur_uix dans le forum Windows
    Réponses: 6
    Dernier message: 10/03/2005, 10h37
  3. [ComboBox] retourner le texte sélectionné
    Par Husqvarna dans le forum C++Builder
    Réponses: 2
    Dernier message: 08/11/2004, 17h09
  4. RichEdit tjs positionner le curseur en bas du texte
    Par microseb dans le forum C++Builder
    Réponses: 2
    Dernier message: 16/05/2003, 17h48
  5. Recuperation du texte sélectionné
    Par jm barbou dans le forum C++Builder
    Réponses: 2
    Dernier message: 13/11/2002, 08h13

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