Condividi tramite


Procedura: Visualizzare collegamenti Web-Style con il controllo RichTextBox di Windows Forms

Il controllo RichTextBox di Windows Forms può visualizzare i collegamenti Web come colorati e sottolineati. È possibile scrivere codice che apre una finestra del browser che mostra il sito Web specificato nel testo del collegamento quando si fa clic sul collegamento.

  1. Impostare la proprietà Text su una stringa che include un URL valido, ad esempio https://www.microsoft.com/.

  2. Assicurarsi che la proprietà DetectUrls sia impostata su true (impostazione predefinita).

  3. Creare una nuova istanza globale dell'oggetto Process.

  4. Scrivere un gestore eventi per l'evento LinkClicked che invia al browser il testo desiderato.

    Nell'esempio seguente, l'evento LinkClicked apre un'istanza di Internet Explorer all'URL specificato nella proprietà Text del controllo RichTextBox. In questo esempio si presuppone un modulo con un controllo RichTextBox.

    Importante

    Quando si chiama il metodo Process.Start, si verificherà un'eccezione SecurityException se il codice viene eseguito in un contesto a fiducia parziale a causa di privilegi insufficienti. Per altre informazioni, vedere Nozioni di Base sulla Sicurezza dell'Accesso al Codice.

    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++) È necessario inizializzare il processo p, che è possibile eseguire includendo l'istruzione seguente nel costruttore del modulo:

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

    (Visual C#, Visual C++) Inserire il codice seguente nel costruttore del modulo per registrare il gestore eventi.

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

    È importante arrestare immediatamente il processo che hai creato al termine dell'utilizzo. Facendo riferimento al codice presentato in precedenza, il codice per arrestare il processo potrebbe sembrare così:

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

Vedere anche