LinkLabel.LinkArea 屬性

定義

取得或設定被視為連結的文字範圍。

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

屬性值

LinkArea,表示被視為連結的區域。

例外狀況

Start 物件的 LinkArea 屬性小於零。

-或-

Length 物件的 LinkArea 屬性小於 -1。

範例

下列範例示範如何使用 LinkLabel 類別,並定義多個 LinkArea 區段,在表單上顯示標籤。 此範例示範如何設定 AutoSizeLinkBehaviorDisabledLinkColorLinkColorVisitedLinkColor 屬性,以自訂 的外觀 LinkLabel 。 第一個 LinkArea 是使用 LinkLabel.LinkArea 屬性來指定。 使用 LinkLabel.LinkCollection.Add 方法將其他連結新增至 LinkLabel 。 此範例會啟動超連結的網頁瀏覽器,並顯示 MessageBox 其他連結的 ,以處理 LinkClicked 事件。

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

備註

屬性 LinkArea 提供快速的方式,可指定要顯示在控制項文字 LinkLabel 中的單一超連結。 物件 LinkArea 提供屬性,指定控制項文字內連結的開始位置,以及超連結的文字長度。 使用 LinkArea 屬性指定超連結時,超連結會新增至 LinkLabel.LinkCollection 控制項的 。 屬性 LinkArea 會將 LinkArea 指派給它的 物件轉換成 LinkLabel.Link 儲存在集合中的 物件。

若要將多個超連結新增至控制項的文字,您可以使用 Links 屬性。 屬性 Links 可讓您存取 的屬性和方法 LinkLabel.LinkCollection ,其會儲存為 控制項指定的連結。 這個將連結加入 至 LinkLabel 的方法,也可讓您在與所建立連結相關聯的 屬性中 LinkData 指定資料。 屬性的值 LinkData 可用來儲存要顯示之檔案的位置或網站的位址。

建立 LinkLabel 控制項時,會將包含控制項內 LinkLabel 所有文字的預設超連結新增至 LinkLabel.LinkCollection 。 您可以使用 屬性指定新的連結區域 LinkArea ,或使用 的 LinkLabel.LinkCollection 方法來指定連結,以覆寫此預設連結 Add 。 您也可以使用 Remove 類別的 LinkLabel.LinkCollection 方法來移除預設超連結。

注意

不論超連結新增至集合的方式為何,屬性 LinkArea 一律會傳回 中的 LinkLabel.LinkCollection 第一個專案。

注意

如果您呼叫 , Length 則 上的 LinkArea 屬性會有所不同,而且 Text 屬性包含雙位元組 UseCompatibleTextRendering 字元。 如果您呼叫 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

另請參閱