img sonicdater

Adding Hyperlink Capability to RichText Boxes

发表于2002/3/9 17:59:00  963人阅读


Adding Hyperlink Capability to RichText Boxes

This tip show how to add hyperlinks into a RichTextBox. What you need to create is two classes that will interact with the RichTextBox.

The two classes are CHyperlink and CHyperlinks.


CHyperLink is a simple Class that describes a hyperLink and has a method to open the URL it points to.


  • LinkUrl
  • LinkText


  • OpenLink

The LinkUrl property is a string containing the URL (for example: http://www.microsoft.com).

The LinkText property is a string containing the text shown in the RTF box (Click here to go to Microsoft).

The OpenLink methods use the ShellExecute API function to launch the default webbrowser and passes the URL to it.


CHyperLinks is a collection class. It contains a collection of CHyperLink objects. When you develop an application you only need to create an object of the CHyperLinks class. CHyperLinks also uses VB WithEvent keyword to "catch" the events of the RTF box that have the hyperlinks.


  • Normal collection properties as Count, Item and NewEnum.
  • RichTextBox


  • Add
  • Remove

The RichTextBox property is actually a RichTextBox object. You must set this object to a RichTextBox on a form.

The Add methods takes three arguments:

object.Add LinkText, LinkURL [, Key]

For example lets say you have a RichTextBox, named RichTextBox1, on a form and you want to add a hyperlink to VB-World to it. Then use this code:

Option Explicit
Private hlkLinks As New CHyperLinks

Private Sub Form_Load()
    Set hlkLinks.RichTextBox = RichTextBox1
    hlkLinks.Add "Go to VB-World", "www.vb-world.net"
End Sub

The Add method will add a CHyperLink object to the collection AND add the text "Go to VB-World" to the RichTextBox1 object. This text will be underlined and in the colour blue.

When you click on this hyperlink in the RTF box (you will not see a hand cursor) the CHyperLink will trap that event and open your browser and point it to VB-World.

The Remove method will only remove the hyperlink from the collection. It will not change the text in the RTF box.

You can add these two classes into any project or you can compile them into an ActiveX DLL.

Completed Hyperlink Demo Project

I have attached a project that show you how to use the classes. It is written in VB5. The zip file also includes two text files that contain the code of two classes that you can just cut and paste if you're not able to open the project.

Tip by Joacim Andersson

0 0



取 消