2017-10-24 3 views
4

link label controlwindows formsfile pathをロードし、link labelにその名前だけを表示したいが、labelをクリックしてパスからファイルを開くとします。リンクラベルにファイル名を追加してパスの後ろに配置することはできますか?

私はこれをしましたが、link labelのファイルパス全体を表示しなければなりません。

private void linkPdfLabel__LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) 
{ 
    Process process = new Process(); 
    process.StartInfo.FileName = linkPdfLabel_.Text; 
    process.Start(); 
} 

答えて

3

2つのソリューションのいずれかを使用することを検討できます。その1つは、Tagプロパティを使用して絶対ファイルパスを割り当て、クリックしたときに使用することです。

コード例:

void CreateLink(string absoluteFilePath) 
{ 
    _linkPdfLabel_.Tag = absoluteFilePath; 
    _linkPdfLabel_.Text = Path.GetFileName(absoluteFilePath); 
} 

void linkPdfLabel__LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) 
{ 
    Process process = new Process(); 
    process.StartInfo.FileName = (string)linkPdfLabel_.Tag; 
    process.Start(); 
} 

もう一つの方法は、Linkオブジェクトのコレクションを保持しているLinkCollectionあるLinksと呼ばれるプロパティを使用することです。これを使用して、テキストの代わりにフルリンクを取得することができます。

例コード:

void CreateFileLink(string absoluteFilePath) 
{ 
    linkPdfLabel_.Text = Path.GetFileName(absoluteFilePath); 

    var link = new LinkLabel.Link(); 
    link.LinkData = absoluteFilePath; 
    linkPdfLabel_.Links.Add(link); 
} 

void linkPdfLabel__LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) 
{ 
    Process process = new Process(); 
    process.StartInfo.FileName = (string)linkPdfLabel_.Link[0].LinkData; 
    process.Start(); 
} 
+0

Iは、第一の溶液を使用します。魅力のように働いた。あなたの時間をありがとう! –

関連する問題