Partager via


Guide pratique pour afficher des liens Web-Style avec le contrôle RichTextBox Windows Forms

Le contrôle RichTextBox Windows Forms peut afficher des liens Web en couleur et souligné. Vous pouvez écrire du code qui ouvre une fenêtre de navigateur montrant le site Web spécifié dans le texte du lien lorsque le lien est cliqué.

  1. Définissez la propriété Text sur une chaîne qui inclut une URL valide (par exemple, https://www.microsoft.com/).

  2. Vérifiez que la propriété DetectUrls est définie sur true (valeur par défaut).

  3. Créez une instance globale de l’objet Process.

  4. Écrivez un gestionnaire d’événements pour l’événement LinkClicked qui envoie le texte souhaité au navigateur.

    Dans l’exemple ci-dessous, l’événement LinkClicked ouvre une instance d’Internet Explorer à l’URL spécifiée dans la propriété Text du contrôle RichTextBox. Cet exemple suppose un formulaire avec un contrôle RichTextBox.

    Important

    Lors de l’appel de la méthode Process.Start, vous rencontrerez une exception SecurityException si vous exécutez le code dans un contexte de confiance partielle en raison de privilèges insuffisants. Pour plus d’informations, consultez Concepts de base de la sécurité de l’accès au code.

    Public p As New System.Diagnostics.Process
    Private Sub RichTextBox1_LinkClicked _
       (ByVal sender As Object, ByVal e As _
       System.Windows.Forms.LinkClickedEventArgs) _
       Handles RichTextBox1.LinkClicked
          ' Call Process.Start method to open a browser
          ' with link text as URL.
          p = System.Diagnostics.Process.Start("IExplore.exe", e.LinkText)
    End Sub
    
    public System.Diagnostics.Process p = new System.Diagnostics.Process();
    
    private void richTextBox1_LinkClicked(object sender,
    System.Windows.Forms.LinkClickedEventArgs e)
    {
       // Call Process.Start method to open a browser
       // with link text as URL.
       p = System.Diagnostics.Process.Start("IExplore.exe", e.LinkText);
    }
    
    public:
       System::Diagnostics::Process ^ p;
    
    private:
       void richTextBox1_LinkClicked(System::Object ^  sender,
          System::Windows::Forms::LinkClickedEventArgs ^  e)
       {
          // Call Process.Start method to open a browser
          // with link text as URL.
          p = System::Diagnostics::Process::Start("IExplore.exe",
             e->LinkText);
       }
    

    (Visual C++) Vous devez initialiser le processus p, que vous pouvez faire en incluant l’instruction suivante dans le constructeur de votre formulaire :

    p = gcnew System::Diagnostics::Process();
    

    (Visual C#, Visual C++) Placez le code suivant dans le constructeur du formulaire pour inscrire le gestionnaire d’événements.

    this.richTextBox1.LinkClicked += new
       System.Windows.Forms.LinkClickedEventHandler
       (this.richTextBox1_LinkClicked);
    
    this->richTextBox1->LinkClicked += gcnew
       System::Windows::Forms::LinkClickedEventHandler
       (this, &Form1::richTextBox1_LinkClicked);
    

    Il est important d’arrêter immédiatement le processus que vous avez créé une fois que vous avez terminé de l’utiliser. En faisant référence au code présenté ci-dessus, votre code pour arrêter le processus peut ressembler à ceci :

    Public Sub StopWebProcess()
       p.Kill()
    End Sub
    
    public void StopWebProcess()
    {
       p.Kill();
    }
    
    public: void StopWebProcess()
    {
       p->Kill();
    }
    

Voir aussi