Dela via


Anvisningar: Visa Web-Style länkar med RichTextBox-kontrollen för Windows Forms

Kontrollen Windows Forms RichTextBox kan visa webblänkar som färgade och understrukna. Du kan skriva kod som öppnar ett webbläsarfönster som visar den webbplats som anges i länktexten när länken klickas.

  1. Ange egenskapen Text till en sträng som innehåller en giltig URL (till exempel https://www.microsoft.com/).

  2. Kontrollera att egenskapen DetectUrls är inställd på true (standard).

  3. Skapa en ny global instans av Process-objektet.

  4. Skriv en händelsehanterare för den LinkClicked händelse som skickar önskad text till webbläsaren.

    I exemplet nedan öppnar händelsen LinkClicked en instans av Internet Explorer till den URL som anges i egenskapen Text för RichTextBox-kontrollen. Det här exemplet förutsätter ett formulär med en RichTextBox kontroll.

    Viktigt!

    När du anropar metoden Process.Start får du ett SecurityException undantag om du kör koden i en kontext med partiellt förtroende på grund av otillräcklig behörighet. Mer information finns i Grunderna för kodåtkomstsäkerhet.

    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++) Du måste initiera processen p, vilket du kan göra genom att inkludera följande instruktion i konstruktorn i formuläret:

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

    (Visual C#, Visual C++) Placera följande kod i formulärets konstruktor för att registrera händelsehanteraren.

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

    Det är viktigt att omedelbart stoppa den process som du har skapat när du har arbetat klart med den. Med hänvisning till koden som visas ovan kan koden för att stoppa processen se ut så här:

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

Se även