LinkArea 結構

定義

表示 LinkLabel 控制項中的區域,代表控制項中的超連結 (Hyperlink)。

[System.ComponentModel.TypeConverter(typeof(System.Windows.Forms.LinkArea+LinkAreaConverter))]
[System.Serializable]
public struct LinkArea
[System.ComponentModel.TypeConverter(typeof(System.Windows.Forms.LinkArea+LinkAreaConverter))]
[System.Serializable]
public struct LinkArea : IEquatable<System.Windows.Forms.LinkArea>
繼承
LinkArea
屬性
實作

範例

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

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

備註

有兩種方式可將超連結新增至控制項的 LinkLabel 文字。 您可以透過 LinksLinkLabel 屬性存取 Add 類別的 方法 LinkLabel.LinkCollection ,以將多個超連結新增至控制項的文字。 如果您只需要將單一超連結新增至控制項的文字,您可以使用 LinkAreaLinkLabel 屬性。 這個屬性接受 , LinkArea 定義控制項文字中超連結的位置。 使用 LinkArea 屬性指定超連結時,接著會以與使用 Add 的 方法 LinkLabel.LinkCollection 新增連結相同的方式,將連結區域新增至 LinkLabel.LinkCollection

屬性 Length 會指定要包含在連結區域中之 文字 LinkLabel 內的字元數。 屬性 Start 會指定要包含在超連結中的控制項文字中的第一個字元。 如果您想要判斷特定 LinkArea 是否空白,您可以使用 IsEmpty 屬性,而不是檢查 和 Length 屬性的值 Start

建構函式

LinkArea(Int32, Int32)

初始化 LinkArea 類別的新執行個體。

屬性

IsEmpty

取得值,指出 LinkArea 是否為空的。

Length

取得或設定連結區域中的字元數。

Start

取得或設定 LinkLabel 文字中連結區域的起始位置。

方法

Equals(LinkArea)

指出目前的物件是否等於另一個相同類型的物件。

Equals(Object)

判斷這個 LinkArea 是否等於指定的物件。

GetHashCode()

傳回這個執行個體的雜湊碼。

ToString()

傳回此執行個體的完整類型名稱。

運算子

Equality(LinkArea, LinkArea)

傳回值,指出 LinkArea 類別的兩個執行個體是否相等。

Inequality(LinkArea, LinkArea)

傳回值,指出 LinkArea 類別的兩個執行個體是否不相等。

適用於

產品 版本
.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

另請參閱