HIRO's.NET

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

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

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

HIRO's.NET RSSHIRO's.NET RSS


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

HOME > VB.NET 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 Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    'テキストを「Yahoo Japan / Google」に設定
    LinkLabel1.Text = "Yahoo Japan / Google"
    'テキストの0文字目から11文字を(Yahoo Japanの部分)を
    'www.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")
End Sub

Private Sub LinkLabel1_LinkClicked(ByVal sender As System.Object, _
     ByVal e As System.Windows.Forms.LinkLabelLinkClickedEventArgs) _
     Handles LinkLabel1.LinkClicked

    'クリックされたテキストに関連付いているリンク先を取得
    Dim target As String = CType(e.Link.LinkData, String)

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

    '訪問済みにする
    LinkLabel1.LinkVisited = True
End Sub