LinkLabel.Link (Clase)
Actualización: noviembre 2007
Representa un vínculo en un control LinkLabel.
Ensamblado: System.Windows.Forms (en System.Windows.Forms.dll)
La clase LinkLabel.Link define las propiedades de un vínculo en un control LinkLabel. Estas propiedades pueden utilizarse para facilitar datos al evento LinkClicked del control LinkLabel y realizar tareas cuando se hace clic en el vínculo del control. La propiedad LinkData permite definir información que el evento LinkClicked puede utilizar para mostrar una dirección URL en Microsoft Internet Explorer o para abrir un archivo.
Además de la información relacionada con el vínculo, las propiedades de la clase LinkLabel.Link ayudan asimismo a definir el texto de LinkLabel.Link y su estado de vista. Las propiedades Start y Length definen la ubicación y la longitud del texto del control LinkLabel que se va a mostrar como vínculo. La propiedad Enabled permite mostrar el vínculo como un vínculo deshabilitado, y la propiedad Visited puede notificar al usuario que ya ha visitado el vínculo especificado en la actual instancia de LinkLabel.
Se pueden mostrar varios vínculos en un solo control LinkLabel. Se agrega cada LinkLabel.Link a la colección LinkLabel.LinkCollection asociada al control LinkLabel. Para obtener la colección de vínculos definidos en un control LinkLabel, utilice la propiedad LinkLabel.Links.
En el siguiente ejemplo se muestra cómo usar la clase LinkLabel, con varias secciones de LinkArea definidas, para mostrar una etiqueta en un formulario. En el ejemplo se muestra cómo se establecen las propiedades AutoSize, LinkBehavior, DisabledLinkColor, LinkColor y VisitedLinkColor para personalizar la apariencia de LinkLabel. El primer LinkArea se especifica mediante la propiedad LinkLabel.LinkArea. Los vínculos adicionales se agregan a LinkLabel mediante el método LinkLabel.LinkCollection.Add. En el ejemplo se controla el evento LinkClicked iniciando el explorador Web para los hipervínculos y mostrando un MessageBox para los demás vínculos.
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); } } }
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
Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98
.NET Framework y .NET Compact Framework no admiten todas las versiones de cada plataforma. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.