このドキュメントはアーカイブされており、メンテナンスされていません。

LinkLabel クラス

ハイパーリンクを表示できる Windows ラベル コントロールを表します。

名前空間: System.Windows.Forms
アセンブリ: System.Windows.Forms (system.windows.forms.dll 内)

[ComVisibleAttribute(true)] 
[ClassInterfaceAttribute(ClassInterfaceType.AutoDispatch)] 
public class LinkLabel : Label, IButtonControl
/** @attribute ComVisibleAttribute(true) */ 
/** @attribute ClassInterfaceAttribute(ClassInterfaceType.AutoDispatch) */ 
public class LinkLabel extends Label implements IButtonControl
ComVisibleAttribute(true) 
ClassInterfaceAttribute(ClassInterfaceType.AutoDispatch) 
public class LinkLabel extends Label implements IButtonControl
適用できません。

ToolStripLabel コントロールは、Label コントロールおよび LinkLabel コントロールの後継となるコントロールであり、新しい機能が追加されています。ただし、下位互換性を維持し、必要に応じて今後も使用できるように、Label コントロールおよび LinkLabel コントロールはいずれも廃止されずに残されています。

LinkLabel コントロールは、ハイパーリンクを表示できるという点を除き、Label コントロールと似ています。このコントロールのテキストには、複数のハイパーリンクを指定できます。各ハイパーリンクを使用して、アプリケーション内で異なる操作を実行できます。たとえば、ハイパーリンクを使用して、Microsoft Internet Explorer で Web サイトを表示したり、アプリケーションに関連付けられているログ ファイルを読み込んだりできます。

LinkLabel コントロールに表示される各ハイパーリンクは、LinkLabel.Link クラスのインスタンスです。LinkLabel.Link クラスは、ハイパーリンクの表示に関する情報、状態、および位置を定義します。また、LinkLabel.Link クラスの LinkData プロパティを使用すると、表示する URL などの情報をハイパーリンクに関連付けることができます。ユーザーがコントロール内のハイパーリンクをクリックすると、LinkClicked イベントが発生し、クリックされたハイパーリンクを表す LinkLabel.Link オブジェクトが、イベント ハンドラにパラメータとして渡される LinkLabelLinkClickedEventArgs オブジェクトの一部として渡されます。このオブジェクトを使用して、ユーザーがクリックしたハイパーリンクに関連付けられている LinkLabel.Link オブジェクトを取得できます。LinkLabel コントロール内に含まれているすべてのハイパーリンクは、そのコントロールが格納されている LinkLabel.LinkCollection クラスのインスタンスに格納されます。

LinkLabel コントロールにハイパーリンクを追加するには 2 つの方法があります。最も簡単な方法は、LinkArea を指定し、そのオブジェクトを LinkArea プロパティに割り当てる方法です。この方法では、コントロールのテキスト内に 1 つのハイパーリンクを指定できます。複数のハイパーリンクを追加するには、Links プロパティを使用して LinkLabel.LinkCollection クラスにアクセスし、そのコレクションの Add メソッドを使用します。

LinkLabel コントロールを作成すると、LinkLabel コントロールのテキスト全体を含む既定のハイパーリンクが LinkLabel.LinkCollection に追加されます。LinkArea プロパティで新しいリンク領域を指定して、この既定のリンクをオーバーライドするか、LinkLabel.LinkCollectionAdd メソッドを使用してリンクを指定できます。既定のハイパーリンクは、LinkLabel.LinkCollection クラスの Remove メソッドを使用して削除することもできます。

LinkLabel は、コントロール内のハイパーリンクの外観を定義するために使用できる多くのプロパティを提供します。ActiveLinkColorDisabledLinkColorLinkColorVisitedLinkColor の各プロパティは、さまざまな状態のハイパーリンクを表示するときに使用する色を定義します。LinkBehavior プロパティは、ハイパーリンクに関連付けられている下線の表示方法を定義します。

複数の LinkArea セクションが定義されている LinkLabel クラスを使用して、フォームにラベルを表示する例を次に示します。AutoSizeLinkBehaviorDisabledLinkColorLinkColor、および VisitedLinkColor などの各プロパティを設定して LinkLabel の外観をカスタマイズする例を次に示します。最初の LinkArea は、LinkLabel.LinkArea プロパティを使用して指定されます。追加のリンクは、LinkLabel.LinkCollection.Add メソッドを使用して LinkLabel に追加されます。この例では、LinkClicked イベントを使用して、Web ブラウザを起動してハイパーリンクにアクセスし、その他のリンクを示す 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);
        }
    }
}

import System.*;
import System.Drawing.*;
import System.Windows.Forms.*;

public class Form1 extends System.Windows.Forms.Form
{
    private System.Windows.Forms.LinkLabel linkLabel1;

    /** @attribute STAThread()
     */
    public static void main(String[] args)
    {
        Application.Run(new Form1());
    } //main

    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.set_Location(new System.Drawing.Point(34, 56));
        this.linkLabel1.set_Size(new System.Drawing.Size(224, 16));
        this.linkLabel1.set_AutoSize(true);
        // Configure the appearance. 
        // Set the DisabledLinkColor so that a disabled link will show up 
        // against the form's background.
        this.linkLabel1.set_DisabledLinkColor(System.Drawing.Color.get_Red());
        this.linkLabel1.set_VisitedLinkColor(System.Drawing.Color.get_Blue());
        this.linkLabel1.set_LinkBehavior(
            System.Windows.Forms.LinkBehavior.HoverUnderline);
        this.linkLabel1.set_LinkColor(System.Drawing.Color.get_Navy());

        this.linkLabel1.set_TabIndex(0);
        this.linkLabel1.set_TabStop(true);
        // Add an event handler to do something when the links are clicked.
        this.linkLabel1.add_LinkClicked(new System.Windows.Forms.
            LinkLabelLinkClickedEventHandler(this.linkLabel1_LinkClicked));
        // Identify what the first Link is.
        this.linkLabel1.set_LinkArea(new System.Windows.Forms.LinkArea(0, 8));
        // Identify that the first link is visited already.
        this.linkLabel1.get_Links().get_Item(0).set_Visited(true);
        // Set the Text property to a string.
        this.linkLabel1.set_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.get_Text().get_Length() >= 45) {
            this.linkLabel1.get_Links().get_Item(0).set_LinkData("Register");
            this.linkLabel1.get_Links().Add(24, 9, "www.microsoft.com");
            this.linkLabel1.get_Links().Add(42, 3, "www.msn.com");
            //  The second link is disabled and will appear as red.
            this.linkLabel1.get_Links().get_Item(1).set_Enabled(false);
        }
        // Set up how the form should be displayed and add the controls to 
        // the form.
        this.set_ClientSize(new System.Drawing.Size(292, 266));
        this.get_Controls().AddRange(new System.Windows.Forms.Control[] { 
            this.linkLabel1 });
        this.set_Text("Link Label Example");
    } //Form1

    private void linkLabel1_LinkClicked(Object sender, 
        System.Windows.Forms.LinkLabelLinkClickedEventArgs e)
    {
        // Determine which link was clicked within the LinkLabel.
        this.linkLabel1.get_Links().get_Item(linkLabel1.get_Links().
            IndexOf(e.get_Link())).set_Visited(true);
        // Display the appropriate link based on the value of the 
        // LinkData property of the Link object.
        String target = (String)e.get_Link().get_LinkData();
        // 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);
        }
    } //linkLabel1_LinkClicked
} //Form1

System.Object
   System.MarshalByRefObject
     System.ComponentModel.Component
       System.Windows.Forms.Control
         System.Windows.Forms.Label
          System.Windows.Forms.LinkLabel

この型の public static (Visual Basicでは共有) メンバはすべて,スレッド セーフです。インスタンス メンバの場合は,スレッド セーフであるとは限りません。

Windows 98,Windows Server 2000 SP4,Windows CE,Windows Millennium Edition,Windows Mobile for Pocket PC,Windows Mobile for Smartphone,Windows Server 2003,Windows XP Media Center Edition,Windows XP Professional x64 Edition,Windows XP SP2,Windows XP Starter Edition

Microsoft .NET Framework 3.0 は Windows Vista,Microsoft Windows XP SP2,および Windows Server 2003 SP1 でサポートされています。

.NET Framework

サポート対象 : 3.0,2.0,1.1,1.0

.NET Compact Framework

サポート対象 : 2.0
表示: