HIRO's.NET

VB.NET, C#, PowerShell Tipsサイト

 VB.NET, C#, PowerShellを使用しているエンジニアのためのサイト。

 基本的な使用方法から開発で役立つTipsまで幅広く取り扱っています。

HIRO's.NET RSSHIRO's.NET RSS


C# 2003の開発でお困りのことはありませんか?
そんな悩みは当サイトで解決!!

HOME > C# 2003 Tips > コントロール > LinkLabel Tips メニュー

04.1つのテキストに複数のリンク先を持たせる

UPDATE:2004/06/21 

<< 前のTips  次のTips >>

 

 LinkLabelコントロールは、複数のリンク先を持たせることが可能です。
 ???と思われた方もいるかもしれません。
 たとえば、LinkLabelのTextプロパティに"Yahoo Japan / Google"と表示して、「Yahoo Japan」の部分がクリックされたら、www.yahoo.co.jpを、「Google」の部分がクリックされたらwww.google.co.jp をWEBブラウザで表示できるよう、「1つのテキストを分割して、複数のリンク先を持たせる」事が可能です。

  これを実現するには、LinkAreaプロパティを使用します。LinkAreaプロパティは、表示されているテキスト文字列の「どこからどこまでをこのリンク先にする」という関連づけを行うことが出来ます。

 
サンプル
 private void Form1_Load(object sender, System.EventArgs e)
{
    // テキストを「Yahoo Japan / Google」に設定
    linkLabel1.Text = "Yahoo Japan / Google";
    // テキストの0文字目から11文字を(Yahoo Japanの部分)を
    //nwww.yahoo.co.jpに関連づけ
    linkLabel1.Links.Add(0, 11, "www.yahoo.co.jp");
    // テキストの14文字目から6文字を(Googleの部分)を
    // www.google.co.jpに関連づけ
    linkLabel1.Links.Add(14, 6, "www.google.co.jp");
}

private void linkLabel1_LinkClicked(object sender,
    System.Windows.Forms.LinkLabelLinkClickedEventArgs e)
{
    // クリックされたテキストに関連付いているリンク先を取得
    string target = e.Link.LinkData as string;

    // 取得したリンク先をWEBブラウザで開く
    System.Diagnostics.Process.Start(target);

    // 訪問済みにする
    linkLabel1.LinkVisited = true;
}