The following example demonstrates using the LinkLabel class, with multiple LinkArea sections defined, to display a label on a form. The example demonstrates setting the AutoSize, LinkBehavior, DisabledLinkColor, LinkColor, and VisitedLinkColor properties to customize the look of the LinkLabel. The first LinkArea is specified using the LinkLabel..::.LinkArea property. Additional links are added to the LinkLabel using the LinkLabel..::.LinkCollection..::.Add method. The example handles the LinkClicked event by starting the Web browser for hyperlinks, and displaying a MessageBox for other links.
Imports System
Imports System.Drawing
Imports System.Windows.Forms
Public NotInheritable Class Form1
Inherits System.Windows.Forms.Form
Friend WithEvents LinkLabel1 As System.Windows.Forms.LinkLabel
<System.STAThread()> _
Public Shared Sub Main()
System.Windows.Forms.Application.Run(New Form1)
End Sub 'Main
Public Sub New()
MyBase.New()
Me.LinkLabel1 = New System.Windows.Forms.LinkLabel
' Configure the LinkLabel's size and location. Specify that the
' size should be automatically determined by the content.
Me.linkLabel1.Location = New System.Drawing.Point(34, 56)
Me.linkLabel1.Size = New System.Drawing.Size(224, 16)
Me.linkLabel1.AutoSize = True
' Configure the appearance.
' Set the DisabledLinkColor so that a disabled link will show up against the form's background.
Me.linkLabel1.DisabledLinkColor = System.Drawing.Color.Red
Me.linkLabel1.VisitedLinkColor = System.Drawing.Color.Blue
Me.linkLabel1.LinkBehavior = System.Windows.Forms.LinkBehavior.HoverUnderline
Me.linkLabel1.LinkColor = System.Drawing.Color.Navy
Me.linkLabel1.TabIndex = 0
Me.linkLabel1.TabStop = True
' Identify what the first Link is.
Me.linkLabel1.LinkArea = New System.Windows.Forms.LinkArea(0, 8)
' Identify that the first link is visited already.
Me.linkLabel1.Links(0).Visited = true
' Set the Text property to a string.
Me.linkLabel1.Text = "Register Online. Visit Microsoft. Visit MSN."
' Create new links using the Add method of the LinkCollection class.
' Underline the appropriate words in the LinkLabel's Text property.
' The words 'Register', 'Microsoft', and 'MSN' will
' all be underlined and behave as hyperlinks.
' First check that the Text property is long enough to accommodate
' the desired hyperlinked areas. If it's not, don't add hyperlinks.
If Me.LinkLabel1.Text.Length >= 45 Then
Me.LinkLabel1.Links(0).LinkData = "Register"
Me.LinkLabel1.Links.Add(24, 9, "www.microsoft.com")
Me.LinkLabel1.Links.Add(42, 3, "www.msn.com")
' The second link is disabled and will appear as red.
Me.linkLabel1.Links(1).Enabled = False
End If
' Set up how the form should be displayed and adds the controls to the form.
Me.ClientSize = New System.Drawing.Size(292, 266)
Me.Controls.AddRange(New System.Windows.Forms.Control() {Me.LinkLabel1})
Me.Text = "Link Label Example"
End Sub
Private Sub linkLabel1_LinkClicked(ByVal sender As Object, _
ByVal e As System.Windows.Forms.LinkLabelLinkClickedEventArgs) Handles LinkLabel1.LinkClicked
' Determine which link was clicked within the LinkLabel.
Me.LinkLabel1.Links(LinkLabel1.Links.IndexOf(e.Link)).Visited = True
' Displays the appropriate link based on the value of the LinkData property of the Link object.
Dim target As String = CType(e.Link.LinkData, String)
' If the value looks like a URL, navigate to it.
' Otherwise, display it in a message box.
If (target IsNot Nothing) AndAlso (target.StartsWith("www")) Then
System.Diagnostics.Process.Start(target)
Else
MessageBox.Show(("Item clicked: " + target))
End If
End Sub
End Class
using System;
using System.Drawing;
using System.Windows.Forms;
public class Form1 : System.Windows.Forms.Form
{
private System.Windows.Forms.LinkLabel linkLabel1;
[STAThread]
static void Main()
{
Application.Run(new Form1());
}
public Form1()
{
// Create the LinkLabel.
this.linkLabel1 = new System.Windows.Forms.LinkLabel();
// Configure the LinkLabel's size and location. Specify that the
// size should be automatically determined by the content.
this.linkLabel1.Location = new System.Drawing.Point(34, 56);
this.linkLabel1.Size = new System.Drawing.Size(224, 16);
this.linkLabel1.AutoSize = true;
// Configure the appearance.
// Set the DisabledLinkColor so that a disabled link will show up against the form's background.
this.linkLabel1.DisabledLinkColor = System.Drawing.Color.Red;
this.linkLabel1.VisitedLinkColor = System.Drawing.Color.Blue;
this.linkLabel1.LinkBehavior = System.Windows.Forms.LinkBehavior.HoverUnderline;
this.linkLabel1.LinkColor = System.Drawing.Color.Navy;
this.linkLabel1.TabIndex = 0;
this.linkLabel1.TabStop = true;
// Add an event handler to do something when the links are clicked.
this.linkLabel1.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel1_LinkClicked);
// Identify what the first Link is.
this.linkLabel1.LinkArea = new System.Windows.Forms.LinkArea(0, 8);
// Identify that the first link is visited already.
this.linkLabel1.Links[0].Visited = true;
// Set the Text property to a string.
this.linkLabel1.Text = "Register Online. Visit Microsoft. Visit MSN.";
// Create new links using the Add method of the LinkCollection class.
// Underline the appropriate words in the LinkLabel's Text property.
// The words 'Register', 'Microsoft', and 'MSN' will
// all be underlined and behave as hyperlinks.
// First check that the Text property is long enough to accommodate
// the desired hyperlinked areas. If it's not, don't add hyperlinks.
if(this.linkLabel1.Text.Length >= 45)
{
this.linkLabel1.Links[0].LinkData = "Register";
this.linkLabel1.Links.Add(24, 9, "www.microsoft.com");
this.linkLabel1.Links.Add(42, 3, "www.msn.com");
// The second link is disabled and will appear as red.
this.linkLabel1.Links[1].Enabled = false;
}
// Set up how the form should be displayed and add the controls to the form.
this.ClientSize = new System.Drawing.Size(292, 266);
this.Controls.AddRange(new System.Windows.Forms.Control[] {this.linkLabel1});
this.Text = "Link Label Example";
}
private void linkLabel1_LinkClicked(object sender, System.Windows.Forms.LinkLabelLinkClickedEventArgs e)
{
// Determine which link was clicked within the LinkLabel.
this.linkLabel1.Links[linkLabel1.Links.IndexOf(e.Link)].Visited = true;
// Display the appropriate link based on the value of the
// LinkData property of the Link object.
string target = e.Link.LinkData as string;
// If the value looks like a URL, navigate to it.
// Otherwise, display it in a message box.
if(null != target && target.StartsWith("www"))
{
System.Diagnostics.Process.Start(target);
}
else
{
MessageBox.Show("Item clicked: " + target);
}
}
}
#using <System.dll>
#using <System.Windows.Forms.dll>
#using <System.Drawing.dll>
using namespace System;
using namespace System::Drawing;
using namespace System::Windows::Forms;
public ref class Form1: public System::Windows::Forms::Form
{
private:
System::Windows::Forms::LinkLabel^ linkLabel1;
public:
Form1()
{
// Create the LinkLabel.
this->linkLabel1 = gcnew System::Windows::Forms::LinkLabel;
// Configure the LinkLabel's size and location. Specify that the
// size should be automatically determined by the content.
this->linkLabel1->Location = System::Drawing::Point( 34, 56 );
this->linkLabel1->Size = System::Drawing::Size( 224, 16 );
this->linkLabel1->AutoSize = true;
// Configure the appearance.
this->linkLabel1->DisabledLinkColor = System::Drawing::Color::Red;
this->linkLabel1->VisitedLinkColor = System::Drawing::Color::Blue;
this->linkLabel1->LinkBehavior = System::Windows::Forms::LinkBehavior::HoverUnderline;
this->linkLabel1->LinkColor = System::Drawing::Color::Navy;
this->linkLabel1->TabIndex = 0;
this->linkLabel1->TabStop = true;
// Add an event handler to do something when the links are clicked.
this->linkLabel1->LinkClicked += gcnew System::Windows::Forms::LinkLabelLinkClickedEventHandler( this, &Form1::linkLabel1_LinkClicked );
// Identify what the first Link is.
this->linkLabel1->LinkArea = System::Windows::Forms::LinkArea( 0, 8 );
// Identify that the first link is visited already.
this->linkLabel1->Links[ 0 ]->Visited = true;
// Set the Text property to a String*.
this->linkLabel1->Text = "Register Online. Visit Microsoft. Visit MSN.";
// Create new links using the Add method of the LinkCollection class.
// Underline the appropriate words in the LinkLabel's Text property.
// The words 'Register', 'Microsoft', and 'MSN' will
// all be underlined and behave as hyperlinks.
// First check that the Text property is long enough to accommodate
// the desired hyperlinked areas. If it's not, don't add hyperlinks.
if ( this->linkLabel1->Text->Length >= 45 )
{
this->linkLabel1->Links[ 0 ]->LinkData = "Register";
this->linkLabel1->Links->Add( 24, 9, "www.microsoft.com" );
this->linkLabel1->Links->Add( 42, 3, "www.msn.com" );
this->linkLabel1->Links[ 1 ]->Enabled = false;
}
// Set up how the form should be displayed and add the controls to the form.
this->ClientSize = System::Drawing::Size( 292, 266 );
array<System::Windows::Forms::Control^>^temp0 = {this->linkLabel1};
this->Controls->AddRange( temp0 );
this->Text = "Link Label Example";
}
private:
void linkLabel1_LinkClicked( Object^ /*sender*/, System::Windows::Forms::LinkLabelLinkClickedEventArgs^ e )
{
// Determine which link was clicked within the LinkLabel.
this->linkLabel1->Links[ linkLabel1->Links->IndexOf( e->Link ) ]->Visited = true;
// Display the appropriate link based on the value of the
// LinkData property of the Link Object*.
String^ target = dynamic_cast<String^>(e->Link->LinkData);
// If the value looks like a URL, navigate to it.
// Otherwise, display it in a message box.
if ( nullptr != target && target->StartsWith( "www" ) )
{
System::Diagnostics::Process::Start( target );
}
else
{
MessageBox::Show( "Item clicked: {0}", target );
}
}
};
[STAThread]
int main()
{
Application::Run( gcnew Form1 );
}
import System.*;
import System.Drawing.*;
import System.Windows.Forms.*;
public class Form1 extends System.Windows.Forms.Form
{
private System.Windows.Forms.LinkLabel linkLabel1;
/** @attribute STAThread()
*/
public static void main(String[] args)
{
Application.Run(new Form1());
} //main
public Form1()
{
// Create the LinkLabel.
this.linkLabel1 = new System.Windows.Forms.LinkLabel();
// Configure the LinkLabel's size and location. Specify that the
// size should be automatically determined by the content.
this.linkLabel1.set_Location(new System.Drawing.Point(34, 56));
this.linkLabel1.set_Size(new System.Drawing.Size(224, 16));
this.linkLabel1.set_AutoSize(true);
// Configure the appearance.
// Set the DisabledLinkColor so that a disabled link will show up
// against the form's background.
this.linkLabel1.set_DisabledLinkColor(System.Drawing.Color.get_Red());
this.linkLabel1.set_VisitedLinkColor(System.Drawing.Color.get_Blue());
this.linkLabel1.set_LinkBehavior(
System.Windows.Forms.LinkBehavior.HoverUnderline);
this.linkLabel1.set_LinkColor(System.Drawing.Color.get_Navy());
this.linkLabel1.set_TabIndex(0);
this.linkLabel1.set_TabStop(true);
// Add an event handler to do something when the links are clicked.
this.linkLabel1.add_LinkClicked(new System.Windows.Forms.
LinkLabelLinkClickedEventHandler(this.linkLabel1_LinkClicked));
// Identify what the first Link is.
this.linkLabel1.set_LinkArea(new System.Windows.Forms.LinkArea(0, 8));
// Identify that the first link is visited already.
this.linkLabel1.get_Links().get_Item(0).set_Visited(true);
// Set the Text property to a string.
this.linkLabel1.set_Text("Register Online. Visit Microsoft."
+ " Visit MSN.");
// Create new links using the Add method of the LinkCollection class.
// Underline the appropriate words in the LinkLabel's Text property.
// The words 'Register', 'Microsoft', and 'MSN' will
// all be underlined and behave as hyperlinks.
// First check that the Text property is long enough to accommodate
// the desired hyperlinked areas. If it's not, don't add hyperlinks.
if (this.linkLabel1.get_Text().get_Length() >= 45) {
this.linkLabel1.get_Links().get_Item(0).set_LinkData("Register");
this.linkLabel1.get_Links().Add(24, 9, "www.microsoft.com");
this.linkLabel1.get_Links().Add(42, 3, "www.msn.com");
// The second link is disabled and will appear as red.
this.linkLabel1.get_Links().get_Item(1).set_Enabled(false);
}
// Set up how the form should be displayed and add the controls to
// the form.
this.set_ClientSize(new System.Drawing.Size(292, 266));
this.get_Controls().AddRange(new System.Windows.Forms.Control[] {
this.linkLabel1 });
this.set_Text("Link Label Example");
} //Form1
private void linkLabel1_LinkClicked(Object sender,
System.Windows.Forms.LinkLabelLinkClickedEventArgs e)
{
// Determine which link was clicked within the LinkLabel.
this.linkLabel1.get_Links().get_Item(linkLabel1.get_Links().
IndexOf(e.get_Link())).set_Visited(true);
// Display the appropriate link based on the value of the
// LinkData property of the Link object.
String target = (String)e.get_Link().get_LinkData();
// If the value looks like a URL, navigate to it.
// Otherwise, display it in a message box.
if (null != target && target.StartsWith("www")) {
System.Diagnostics.Process.Start(target);
}
else {
MessageBox.Show("Item clicked: " + target);
}
} //linkLabel1_LinkClicked
} //Form1