LinkLabel.LinkArea Propiedad

Definición

Obtiene o establece el intervalo del texto que se va a tratar como vínculo.

C#
public System.Windows.Forms.LinkArea LinkArea { get; set; }

Valor de propiedad

LinkArea que representa el área que se trata como vínculo.

Excepciones

La propiedad Start del objeto LinkArea es menor que cero.

o bien

La propiedad Length del objeto LinkArea es menor que -1.

Ejemplos

En el ejemplo siguiente se muestra el uso de la LinkLabel clase , con varias LinkArea secciones definidas, para mostrar una etiqueta en un formulario. En el ejemplo se muestra cómo establecer las AutoSizepropiedades , LinkBehavior, DisabledLinkColorLinkColor, y VisitedLinkColor para personalizar la apariencia de LinkLabel. La primera LinkArea se especifica mediante la LinkLabel.LinkArea propiedad . Se agregan vínculos adicionales al LinkLabel mediante el LinkLabel.LinkCollection.Add método . En el ejemplo se controla el LinkClicked evento iniciando el explorador web para los hipervínculos y mostrando un MessageBox para otros vínculos.

C#
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);
        }
    }
}

Comentarios

La LinkArea propiedad proporciona una manera rápida de especificar un único hipervínculo que se va a mostrar en el texto del LinkLabel control. El LinkArea objeto proporciona propiedades que especifican la posición inicial del vínculo dentro del texto del control y la longitud del texto del hipervínculo. Cuando se especifica un hipervínculo mediante la LinkArea propiedad , el hipervínculo se agrega al LinkLabel.LinkCollection del control . La LinkArea propiedad convierte el LinkArea objeto asignado a él en un LinkLabel.Link objeto almacenado dentro de la colección.

Para agregar varios hipervínculos al texto del control, puede usar la Links propiedad . La Links propiedad permite tener acceso a las propiedades y métodos de LinkLabel.LinkCollection, que almacena los vínculos especificados para el control. Este método para agregar vínculos a LinkLabel también le permite especificar datos en la LinkData propiedad asociada al vínculo que se va a crear. El valor de la propiedad LinkData se puede usar para almacenar la ubicación de un archivo que se va a mostrar o la dirección de un sitio web.

Cuando se crea un LinkLabel control, se agrega un hipervínculo predeterminado que contiene todo el texto del LinkLabel control a LinkLabel.LinkCollection. Puede invalidar este vínculo predeterminado especificando un área de vínculo nueva con la LinkArea propiedad o especificando un vínculo mediante el Add método de LinkLabel.LinkCollection. También puede quitar el hipervínculo predeterminado mediante el Remove método de la LinkLabel.LinkCollection clase .

Nota

La LinkArea propiedad siempre devuelve el primer elemento de LinkLabel.LinkCollection, independientemente de cómo se agregó el hipervínculo a la colección.

Nota

La Length propiedad de variará LinkArea si llama a UseCompatibleTextRenderingy la Text propiedad contiene caracteres de doble byte. Si llama a UseCompatibleTextRendering, devolverá el número de bytes de la cadena. De lo contrario, devolverá el número de caracteres reales.

Se aplica a

Producto Versiones
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9, 10

Consulte también