Cómo: Mostrar vínculos de estilo Web con el control RichTextBox de formularios Windows Forms

Actualización: noviembre 2007

El control RichTextBox de formularios Windows Forms puede mostrar vínculos Web en color y subrayados. Puede escribir código que abra una ventana de exploración que muestre el sitio Web especificado en el texto del vínculo, al hacer clic en el vínculo.

Para vincular una página Web con el control RichTextBox

  1. Establezca la propiedad Text en una cadena que incluya una dirección URL válida (por ejemplo, "https://www.microsoft.com/spanish").

  2. Asegúrese de que la propiedad DetectUrls está establecida en true (el valor predeterminado).

  3. Cree una nueva instancia global del objeto Process.

  4. Escriba un controlador de eventos para el evento LinkClicked que envíe al explorador el texto deseado.

    En el ejemplo siguiente, el evento LinkClicked abre una instancia de Internet Explorer con una dirección URL especificada en la propiedad Text del control RichTextBox. Este ejemplo supone un formulario con un control RichTextBox.

    Nota de seguridad:

    Al llamar al método Process.Start encontrará una excepción SecurityException por falta de privilegios si ejecuta el código en un contexto de confianza parcial. Para obtener más información, vea Conceptos básicos sobre la seguridad de acceso a código.

    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++) Debe inicializar el proceso p. Puede hacerlo incluyendo la siguiente instrucción en el constructor del formulario:

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

    (Visual C#, Visual C++) Coloque el código siguiente en el constructor del formulario para registrar el controlador de eventos.

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

    Es importante detener inmediatamente el proceso que ha creado una vez que termine de trabajar con él. Tomando como referencia el código anterior, el código para detener el proceso sería similar al siguiente:

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

Vea también

Referencia

DetectUrls

LinkClicked

RichTextBox

Otros recursos

RichTextBox (Control, formularios Windows Forms)

Controles que se utilizan en formularios Windows Forms