If you Process.Start the url for your link, that will do the same as ShellExecute, which is the way you'd do it in native code.
To get a text link with proper behaviour, use a LinkLabel from the Visual Studio toolbox. The issue here is that a LinkLabel is a massively powerful abstraction, capable of handling scads of text, images, multiple links etc. If all you want is a link to a single URL, it's a tad over-featured. However we can simplify the code required right down. Let's pretend your label has the default name LinkLabel1, and your form has the name Form1. We can set the link up in the form created event:
linkLabel1.Links.Add (0, 7, "http://www.bobmoore.dx.am/"); linkLabel1.LinkClicked += new LinkLabelLinkClickedEventHandler(linkLabel1_LinkClicked);
and react to the user's click in the linklabel's clicked event:
private void linkLabel1_LinkClicked (object sender, System.Windows.Forms.LinkLabelLinkClickedEventArgs e) { this.linkLabel1.Links[linkLabel1.Links.IndexOf (e.Link)].Visited = true; string target = e.Link.LinkData as string; System.Diagnostics.Process.Start (target); }
That's all there is to it.