Compartir a través de


Procedimiento para mostrar vínculos de estilo web con el control RichTextBox de formularios Windows Forms

El control RichTextBox de Windows Forms puede mostrar vínculos web con colores y subrayado. Puede escribir código que abra una ventana del explorador en la que se muestre el sitio web especificado en el texto del vínculo cuando se haga clic en el vínculo.

  1. Establece la propiedad Text en una cadena que incluya una URL válida (por ejemplo, https://www.microsoft.com/).

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

  3. Cree una instancia global del objeto Process.

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

    En el ejemplo siguiente, el evento LinkClicked abre una instancia de Internet Explorer en la dirección URL especificada en la propiedad Text del control RichTextBox. En este ejemplo da por supuesto que existe un formulario con un control RichTextBox.

    Importante

    Al llamar al método Process.Start, se producirá una excepción SecurityException si ejecuta el código en un contexto de confianza parcial debido a privilegios insuficientes. Para obtener más información, vea Conceptos básicos sobre la seguridad de acceso del 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, lo que puede hacer si incluye la instrucción siguiente en el constructor del formulario:

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

    (Visual C# y Visual C++). Incluya 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 que detenga de inmediato el proceso que ha creado una vez que haya terminado de trabajar con él. En referencia al código que se presentó antes, el código para detener el proceso podría tener este aspecto:

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

Consulte también