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é.
Pour créer un lien vers une page Web avec le contrôle RichTextBox
Définissez la propriété Text sur une chaîne qui inclut une URL valide (par exemple,
https://www.microsoft.com/
).Vérifiez que la propriété DetectUrls est définie sur
true
(valeur par défaut).Créez une instance globale de l’objet Process.
É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
.NET Desktop feedback