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.
Per collegarsi 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/
.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 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
.NET Desktop feedback