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 :

[C#] RichTextBox et liens hypertextes


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2004
    Messages
    1 825
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 1 825
    Par défaut [C#] RichTextBox et liens hypertextes
    Bonjour à tous,

    J'ai vu que la RichTextBox pouvait détecter des URL et les surligner à sa manière, et en cliquand dessus, ça appelle un évènement LinkCliked...

    Alors je voudrais savoir si nous pouvions les faire nous même. Enfin juste pouvoir changer le curseur de la souris quand elle passe sur un mot choisi, ça suffirai .

    Je vous remercie.

    A bientôt

  2. #2
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Par défaut
    Sur l'event OnMouseHover, tu regarde le mot sélectionné (ou qui st e ndessous) et là, tu changes le curseur de ta souris

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2004
    Messages
    1 825
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 1 825
    Par défaut
    ouais c'est ce que j'ai fait, après j'analyse le mot pour voire si c'est une URL, ou un utilisateur, ou un serveur lol. Enfin j'ai utilisé "MouseMove"

    Parcontre attention, la RTB plante quand on essaye d'accéder à son Text trop souvent... J'ai encore bricolé avec des booléen pour savoir si le texte est en cours de mise à jour ou pas, et je tente pas d'y accéder s'il l'est.

    En plus elle plante, fait planter la form qui la contient, et ne génère aucune exception

    Enfin voilà

    Merci

    A bientôt

  4. #4
    Expert confirmé
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 65
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Par défaut
    je ne suis pas sûr d'avoir bien compris ton souci
    Tout d'abord Etsce que tu as fait quelquechose comme cela :
    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
     
    using System;
    using System.Windows.Forms;
    //
    this.RTB.DetectUrls = true;
    this.RTB.LinkClicked += new LinkClickedEventHandler(this.RTB_LinkClicked);
    //
    public System.Diagnostics.Process p = new System.Diagnostics.Process();
    private void RTB_LinkClicked(object sender, LinkClickedEventArgs e)
     {
        p = System.Diagnostics.Process.Start("IExplore.exe", e.LinkText);
     }
    public void StopWebProcess()
    {
       p.Kill();
    }
    Ne pas oublié d'appeler StopWebProcess() dès que le processus devient inutile
    Sinon le changement de Cursor se fait automatiquement lors du passage sur une Url

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2004
    Messages
    1 825
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 1 825
    Par défaut
    Merci mais c'est pas que des liens http ou ftp que je voulais rendre cliquable.

    Mais c'est bon j'ai trouvé, un peu complexe mais ça été.
    je récupère l'évènnement move, avec les coordonnées de la souris contenues dans la paramètre passé (je sais plus quel type). Avec ça y'a une fonction qui permet de récupérer l'index du caractère où la souris est place. J'extrait le mot, et je cherche à savoir c'est quoi.

    Parcontre, merci la RTB encore une fois. Comme l'évènement se produit très souvent (dès qu'on bouge la souris d'un pixel), bah j'ai besoin d'accéder au champ Text de la RTB très régulièrement, mais lorsque l'on fait un appendText, le champ deviens "null" le temps de le rafraichir, et donc j'obtiens des NullReferenceException... Faut encore bidouiller avec un système de booléen...

    Merci quand même

  6. #6
    Expert confirmé
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 65
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Par défaut
    Ben en fait je me demandes si tu ne sous exploite pas les possiblités naturelles du RTB en essayant de faire à sa place ce qu'il sait faire.
    Que faistu de plus que ce que sait faire un RTB :

  7. #7
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2004
    Messages
    1 825
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 1 825
    Par défaut
    Bah.... Y'a quoi d'autre comme composant pour faire ça?

  8. #8
    Expert confirmé
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 65
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Par défaut
    Citation Envoyé par mister3957
    Bah.... Y'a quoi d'autre comme composant pour faire ça?
    Essayes de repondre à mes questions sinon je ne vois pas comment t'aider

  9. #9
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2004
    Messages
    1 825
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 1 825
    Par défaut
    Bah alors avec ma RTB, bah j'affiche du texte en RTF, malheureusement, y'a pas de fonction dans la rtb pour qu'elle s'occupe de la transformation, donc j'ai un p'tit algo qui transforme du texte plain, avec des attributs, en text rtf.

    Ensuite y'a les mouse move. Quand la souris passe sur un mot, je récupère le mot, je regarde si c'est un lien, un pseudo d'utilisateur ou un chan, et je change le pointeur de la souris. Quand l'utilisateur clic, selon le mot sur lequel il a cliqué, ça ouvre une fenetre de session en pv, ou à rejoin le chan si le mot et le nom d'un chan, ou ça ouvre une page internet.
    Là encore, y'a pas de double clic, donc faut récupérer les click, stocker les dates, et au prochain click on détermine le temps entre les deux click, et on génère un double click selon si l'interval est inférieur à la référence définie.

    Ensuite j'crois que c'est tout.

    Le RTF c'est pour afficher du text surligné.

    Mais là c'est bon, j'le réécrit en java, avec leur class JTextPane et leur HTMLEditorKit, comme ça, bah je converti les chaines venant de irc (avec les codes couleurs, les code pour mettre en grans, souligné etc...) en HTML, et ça marche nikel, c'est rapide et tout.

    Y'a un composant en .NET qui permet d'afficher du html?

    Aller merci beaucoup

    A bientôt

  10. #10
    Expert confirmé
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 65
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Par défaut
    ok mais n'oublies pas le tag

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Lien hypertexte dans une RichTextBox
    Par valoo67 dans le forum Windows Forms
    Réponses: 5
    Dernier message: 21/05/2008, 11h25
  2. [FLASH 5] Comment créer un lien hypertexte
    Par ajit dans le forum Flash
    Réponses: 4
    Dernier message: 30/03/2006, 12h26
  3. [Lien hypertexte]Mettre un lien dans un JTextPane
    Par Pill_S dans le forum Composants
    Réponses: 8
    Dernier message: 23/05/2004, 19h20
  4. lien hypertexte dans une anim flash
    Par vedder dans le forum Flash
    Réponses: 17
    Dernier message: 14/01/2004, 14h11
  5. Liens Hypertexte simple comme en HTML ?!
    Par oazar dans le forum Flash
    Réponses: 3
    Dernier message: 17/10/2003, 00h25

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