英語で読む

次の方法で共有


LinkArea 構造体

定義

LinkLabel コントロール内のハイパーリンク領域を表します。

C#
[System.ComponentModel.TypeConverter(typeof(System.Windows.Forms.LinkArea+LinkAreaConverter))]
[System.Serializable]
public struct LinkArea
C#
[System.ComponentModel.TypeConverter(typeof(System.Windows.Forms.LinkArea+LinkAreaConverter))]
[System.Serializable]
public struct LinkArea : IEquatable<System.Windows.Forms.LinkArea>
継承
LinkArea
属性
実装

次のコード例では、 クラスを LinkLabel 使用し、複数 LinkArea のセクションを定義してフォームにラベルを表示する方法を示します。 この例では、 の外観を AutoSizeカスタマイズするために、、 LinkBehaviorDisabledLinkColorLinkColor、および VisitedLinkColor プロパティを設定する方法を LinkLabel示します。 1 つ目 LinkArea は、 プロパティを LinkLabel.LinkArea 使用して指定します。 メソッドを使用して、 に LinkLabel 追加のリンクが LinkLabel.LinkCollection.Add 追加されます。 この例では、ハイパーリンクの LinkClicked Web ブラウザーを起動し、他のリンクの を MessageBox 表示することで、イベントを処理します。

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

注釈

コントロールのテキスト LinkLabel にハイパーリンクを追加するには、2 つの方法があります。 クラスの LinkLabel.LinkCollection メソッドに Add アクセスするには、 の プロパティをLinks使用して、コントロールのLinkLabelテキストに複数のハイパーリンクを追加します。 コントロールのテキストにハイパーリンクを 1 つだけ追加する必要がある場合は、 の プロパティをLinkAreaLinkLabel使用できます。 このプロパティは、コントロールの LinkArea テキスト内のハイパーリンクの位置を定義する を受け入れます。 プロパティを使用してハイパーリンクを指定すると、 の メソッドを使用LinkAreaしてリンクを追加するLinkLabel.LinkCollectionのと同じ方法で、リンク領域が にAddLinkLabel.LinkCollection追加されます。

プロパティは Length 、リンク領域に含める のテキスト内の LinkLabel 文字数を指定します。 プロパティは Start 、ハイパーリンクに含めるコントロール テキストの最初の文字を指定します。 特定LinkAreaの が空かどうかを判断する場合は、 プロパティと Length プロパティの値をIsEmpty確認する代わりに、 プロパティをStart使用できます。

コンストラクター

LinkArea(Int32, Int32)

LinkArea クラスの新しいインスタンスを初期化します。

プロパティ

IsEmpty

LinkArea が空かどうかを示す値を取得します。

Length

リンク領域内の文字の数を取得または設定します。

Start

LinkLabel のテキスト内のリンク領域の先頭位置を取得または設定します。

メソッド

Equals(LinkArea)

現在のオブジェクトが、同じ型の別のオブジェクトと等しいかどうかを示します。

Equals(Object)

この LinkArea が指定したオブジェクトと等しいかどうかを判断します。

GetHashCode()

このインスタンスのハッシュ コードを返します。

ToString()

このインスタンスの完全修飾型名を返します。

演算子

Equality(LinkArea, LinkArea)

LinkArea クラスの 2 つのインスタンスが等しいかどうかを示す値を返します。

Inequality(LinkArea, LinkArea)

LinkArea クラスの 2 つのインスタンスが等しくないかどうかを示す値を返します。

適用対象

製品 バージョン
.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

こちらもご覧ください