Procedura: visualizzare collegamenti ipertestuali con il controllo RichTextBox Windows Form
Il controllo RichTextBox Windows Form consente di visualizzare collegamenti Web colorati e sottolineati. È possibile scrivere il codice che apre una finestra del browser nella quale viene visualizzato il sito Web specificato nel testo del collegamento quando si fa clic sul collegamento.
Per definire un collegamento a una pagina Web con il controllo RichTextBox
Impostare la proprietà Text su una stringa che include un URL valido, ad esempio "https://www.microsoft.com/italy/".
Assicurarsi che la proprietà DetectUrls sia impostata su true (impostazione predefinita).
Creare una nuova istanza globale dell'oggetto Process.
Scrivere un gestore eventi per l'evento LinkClicked che invia al browser il testo desiderato.
Nell'esempio qui di seguito, l'evento LinkClicked consente di aprire un'istanza di Internet Explorer con l'URL specificato nella proprietà Text del controllo RichTextBox. Nell'esempio si presuppone l'esistenza di un form contenente un controllo RichTextBox.
Nota sulla sicurezza Durante la chiamata al metodo Process.Start verrà generata un'eccezione SecurityException se si esegue il codice in un contesto parzialmente attendibile, poiché non si dispone di privilegi sufficienti. Per ulteriori informazioni vedere Nozioni fondamentali sulla sicurezza per l’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. Per effettuare questa operazione, includere la seguente istruzione nel costruttore del form:
p = gcnew System::Diagnostics::Process();
(Visual C#, Visual C++) Inserire il codice seguente nel costruttore del form 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 creato una volta completate le operazioni desiderate. Con riferimento al codice sopra riportato, il codice per arrestare il processo sarà simile al seguente:
Public Sub StopWebProcess() p.Kill() End Sub
public void StopWebProcess() { p.Kill(); }
public: void StopWebProcess() { p->Kill(); }