Прочитать на английском

Поделиться через


LinkLabel.LinkArea Свойство

Определение

Возвращает или задает диапазон текста, рассматриваемый в качестве ссылки.

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

Значение свойства

Объект LinkArea представляет область, рассматриваемую в качестве ссылки.

Исключения

Свойство Start объекта LinkArea меньше нуля.

-или-

Свойство Length объекта LinkArea меньше -1.

Примеры

В следующем примере показано использование LinkLabel класса с несколькими LinkArea разделами для отображения метки на форме. В примере показано задание AutoSizeсвойств , LinkBehavior, DisabledLinkColor, LinkColorи VisitedLinkColor для настройки внешнего вида LinkLabel. Первый LinkArea задается с помощью LinkLabel.LinkArea свойства . Дополнительные ссылки добавляются в с LinkLabel помощью LinkLabel.LinkCollection.Add метода . В примере событие обрабатывается LinkClicked путем запуска веб-браузера для гиперссылок и отображения MessageBox для других ссылок.

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

Комментарии

Свойство LinkArea позволяет быстро указать одну гиперссылку для отображения в тексте LinkLabel элемента управления . Объект LinkArea предоставляет свойства, определяющие начальную позицию ссылки в тексте элемента управления и длину текста гиперссылки. Если гиперссылка указана LinkArea с помощью свойства , гиперссылка добавляется в LinkLabel.LinkCollection элемент управления . Свойство LinkArea преобразует назначенный LinkArea ему объект в LinkLabel.Link объект, хранящийся в коллекции.

Чтобы добавить несколько гиперссылок в текст элемента управления, можно использовать Links свойство . Свойство Links позволяет получить доступ к свойствам и методам LinkLabel.LinkCollectionобъекта , в котором хранятся ссылки, указанные для элемента управления . Этот метод добавления ссылок на LinkLabel также позволяет указать данные в свойстве LinkData , связанном с создаваемой ссылкой. Значение LinkData свойства можно использовать для хранения расположения файла для отображения или адреса веб-сайта.

LinkLabel При создании элемента управления гиперссылка по умолчанию, содержащая весь текст в элементе LinkLabel управления, добавляется в LinkLabel.LinkCollection. Эту ссылку по умолчанию можно переопределить, указав новую область ссылки со свойством LinkArea , или указать ссылку Add с помощью метода LinkLabel.LinkCollection. Вы также можете удалить гиперссылку по умолчанию с помощью Remove метода LinkLabel.LinkCollection класса .

Примечание

Свойство LinkArea всегда возвращает первый элемент в LinkLabel.LinkCollection, независимо от того, как гиперссылка была добавлена в коллекцию.

Примечание

Свойство Length в LinkArea будет отличаться, если вызвать UseCompatibleTextRendering, а Text свойство содержит двухбайтовые символы. При вызове UseCompatibleTextRenderingметод вернет количество байтов в строке. В противном случае возвращается количество фактических символов.

Применяется к

Продукт Версии
.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

См. также раздел