web-dev-qa-db-fra.com

Comment puis-je faire fonctionner un lien hypertexte dans une RichTextBox?

Lorsque j'ajoute www.stackoverflow.com dans ma RichTextBox et que j'exécute le programme, il est affiché en bleu et en tant que lien hypertexte, mais quand je clique dessus, rien ne se passe. Comment puis-je réparer cela?

43
Jade M
  1. Assurez-vous que la propriété text inclut une URL valide. Par exemple. http://www.stackoverflow.com/

  2. définissez la propriété DetectUrls sur true

  3. Écrivez un gestionnaire d'événements pour l'événement LinkClicked .

Personnellement, je ne passerais pas "IExplore.exe" en paramètre au Process.Start appelez comme Microsoft le conseille car cela suppose qu'il est installé et est le navigateur préféré de l'utilisateur. Si vous passez simplement l'URL pour démarrer le processus (comme ci-dessous), Windows fera la bonne chose et lancera le navigateur préféré de l'utilisateur avec l'URL appropriée.

private void mRichTextBox_LinkClicked (object sender, LinkClickedEventArgs e) {
    System.Diagnostics.Process.Start(e.LinkText);
}
123
Sam Meldrum

La classe RichTextBox vous permet de personnaliser son comportement lorsque l'utilisateur clique sur le lien hypertexte. Ajoutez un gestionnaire d'événements pour l'événement RichTextBox.LinkClicked

Process p = new Process();

private void richTextBox1_LinkClicked(object sender, LinkClickedEventArgs e)
{
   p = Process.Start("IExplore.exe", e.LinkText);
}
10
aku

Vous devez vous assurer que DetectUrls est défini sur true. Si cela ne fonctionne pas seul, vous devrez peut-être ajouter un gestionnaire pour l'événement LinkClicked.

2
Jeff Yates

Est yourTextBox.DetectUrls défini sur true? Il se peut que nous ayons besoin de plus d'informations pour fournir une meilleure réponse.

1
Andrew Hare