Comment : afficher des liens de style Web avec le contrôle RichTextBox Windows Forms
Mise à jour : novembre 2007
Le contrôle RichTextBox Windows Forms peut afficher les liens Web en utilisant des couleurs et le soulignement. Vous pouvez écrire le code qui ouvre une fenêtre de navigateur dans laquelle s'affiche le site Web spécifié dans le texte du lien lorsque l'utilisateur clique sur ce lien.
Pour créer un lien vers une page Web avec le contrôle RichTextBox
Affectez à la propriété Text une chaîne contenant une URL valide (par exemple, « https://www.microsoft.com/france »).
Assurez-vous que la propriété DetectUrls a la valeur true (valeur par défaut).
Créez une nouvelle instance globale de l'objet Process.
Écrivez un gestionnaire d'événements pour l'événement LinkClicked qui envoie au navigateur le texte souhaité.
Dans l'exemple ci-dessous, l'événement LinkClicked ouvre une instance d'Internet Explorer avec l'URL spécifiée dans la propriété Text du contrôle RichTextBox. Cet exemple illustre un formulaire avec un contrôle RichTextBox.
Note de sécurité : Lors de l'appel à la méthode Process.Start, vous rencontrez 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 Notions fondamentales de la sécurité d'accès du 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, ce 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éé dès lors que vous avez fini de l'utiliser. S'agissant du code présenté plus haut, le code permettant d'arrêter le processus peut ressembler à ce qui suit :
Public Sub StopWebProcess() p.Kill() End Sub
public void StopWebProcess() { p.Kill(); }
public: void StopWebProcess() { p->Kill(); }