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

Windows Forms Discussion :

position due la souris dans le richtextbox


Sujet :

Windows Forms

  1. #1
    Membre éclairé
    Étudiant
    Inscrit en
    Août 2008
    Messages
    349
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2008
    Messages : 349
    Par défaut position due la souris dans le richtextbox
    salut tout le monde,
    est ce que quelqu'un connait comment je peux reconnaitre la position de mon curseur de ma souris sur le richTextBox car SelectionStart ne marche pas
    en fiat lorsque je positionne mon souris dans une position, SelectionStart ne me retourne pas la correcte valeur.

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    SelectionStart n'est pas lié à la position de la souris, c'est l'index du caractère où commence la sélection de texte.
    Pour obtenir la position de la souris :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Point absolute = Control.MousePosition;
    Point relative = richTextBox1.PointToClient(absolute);
    (absolute est la position de la souris en coordonnées écran, relative est la position par rapport au RichTextBox)

  3. #3
    Membre éclairé
    Étudiant
    Inscrit en
    Août 2008
    Messages
    349
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2008
    Messages : 349
    Par défaut
    en fait ce que je veux savoir c'est l'index ou se trouve le soouris pas les coordonnées pour que je puisse ajouter du texte

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Dans ce cas tu y es presque
    La méthode GetCharIndexFromPosition du RichTextBox renvoie l'index du caractère à une position donnée, tu n'as plus qu'à lui passer en paramètre la valeur obtenue avec mon code

  5. #5
    Membre éclairé
    Étudiant
    Inscrit en
    Août 2008
    Messages
    349
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2008
    Messages : 349
    Par défaut
    j'ai essayer ça mais ç me donne toujours la meme position et voici le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Point absolute = Control.MousePosition;
    Point relative = ((RichTextBox)tabControl1.SelectedTab.Controls[0]).PointToClient(absolute);
    int indexRecherche = ((RichTextBox)tabControl1.SelectedTab.Controls[0]).GetCharIndexFromPosition(relative);
    Console.WriteLine("l'indice de la souris est  " + indexRecherche.ToString());

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    C'est l'index par rapport au texte du RichTextBox, donc ça ne fonctionne pas s'il est vide...

    Et épargne-toi quelques souffrances : déclare une variable pour ta RichTextBox, ce sera plus lisible et plus rapide à écrire...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    RichTextBox rtb = (RichTextBox)tabControl1.SelectedTab.Controls[0];
    Point absolute = Control.MousePosition;
    Point relative = rtb.PointToClient(absolute);
    int indexRecherche = rtb.GetCharIndexFromPosition(relative);
    Console.WriteLine("l'indice de la souris est  " + indexRecherche.ToString());

  7. #7
    Membre éclairé
    Étudiant
    Inscrit en
    Août 2008
    Messages
    349
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2008
    Messages : 349
    Par défaut
    tomlev c'est le meme code sauf que tu l'a embelli d'ailleurs ça me retourne toujours la meme valeur qui est "11" et je sais pas pourquoi ??

  8. #8
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par TaymouWan Voir le message
    tomlev c'est le meme code sauf que tu l'a embelli
    Je sais bien que c'est le même code, j'ai juste modifié pour illustrer mon conseil pour rendre le code plus lisible...

    Citation Envoyé par TaymouWan Voir le message
    d'ailleurs ça me retourne toujours la meme valeur qui est "11" et je sais pas pourquoi ??
    Ca ne fonctionne que si la souris est au dessus du texte. Si elle est après la fin du texte, ça renvoie l'index du dernier caractère. N'oublie pas que l'index renvoyé est un index dans le texte. Si ton texte ne fait que 10 caractères, tu n'obtiendras jamais un index au delà...

  9. #9
    Membre éclairé
    Étudiant
    Inscrit en
    Août 2008
    Messages
    349
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2008
    Messages : 349
    Par défaut
    le problème est que mon texte est au delà contient 19 caractères

  10. #10
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par TaymouWan Voir le message
    le problème est que mon texte est au delà contient 19 caractères
    ben écoute, chez moi ça fonctionne, donc je sais pas quoi te dire de plus...

    EDIT: au fait, à quel moment tu exécutes ce code ?

  11. #11
    Membre éclairé
    Étudiant
    Inscrit en
    Août 2008
    Messages
    349
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2008
    Messages : 349
    Par défaut
    plus précisément j'ai un texte dans un richtextbox et je veux effectuer la recherche d'une chaine dans ce texte et cette recherche doit commencer à partir de la position ou est ce que je mets le curseur de ma souris ou bien à partir du dernier mot sélectionné

  12. #12
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par TaymouWan Voir le message
    plus précisément j'ai un texte dans un richtextbox et je veux effectuer la recherche d'une chaine dans ce texte et cette recherche doit commencer à partir de la position ou est ce que je mets le curseur de ma souris ou bien à partir du dernier mot sélectionné
    Euh... tu es sûr que c'est pas plutôt la position du curseur de texte, plutôt que celui de la souris ? Parce que dans ce cas je ne comprends pas trop le rapport avec la souris. L'emplacement actuel du curseur de texte est SelectionStart. Si ça ne fonctionne pas, je ne vois pas trop ce qu'on peut y faire... essaie de donner le focus à la RichTextBox avec la méthode Focus (je pense pas que ça change quoi que ce soit, mais ça coute rien d'essayer...)

Discussions similaires

  1. [Lazarus] Position de la souris dans un TMemo
    Par ChPr dans le forum Lazarus
    Réponses: 11
    Dernier message: 25/05/2012, 16h41
  2. Réponses: 3
    Dernier message: 23/11/2010, 17h13
  3. Détecter la position de la souris dans une fonction
    Par polemoss dans le forum jQuery
    Réponses: 5
    Dernier message: 19/03/2009, 09h28
  4. Position de la souris dans un Memo
    Par greg778 dans le forum Delphi
    Réponses: 17
    Dernier message: 27/11/2006, 21h32
  5. Position de la souris dans une form
    Par planetevoyage dans le forum Delphi
    Réponses: 3
    Dernier message: 12/10/2006, 10h39

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