2016-03-29 3 views
0

私はダイナミックリンクラベルを読んでいますが、まだ私の答えは見つかりませんでした。私のコードでは、.csvファイルを読み込んでいます。基本的な設定で行をチェックし、3番目ごとにいっぱいになるとそのリンクを読み込みます。これはすべてtableLayoutPanelにあります。私はそうのようなラベルを作成しています:ダイナミックリンクラベル

 tableLayoutPanel1.Controls.Add(new LinkLabel() { Text = "TEST",Name = count.ToString(),Tag = @"N:\reuther", Anchor = AnchorStyles.Left, AutoSize = true }, 2, 3); 

私がいる問題を、これらの列の一部が空である可能性があることです、私は本当に私がどんな時がありますどのように多くの合計で知らない意味します瞬間私がオンラインで見たメモ、ダイナミックリンクに名前をつけて、名前で特定のリンクがクリックされたことを検出するプライベート関数を使用するように進みます。私はそれができません。なぜなら、実行時までに必要なリンクの数がわからないからです。私の例では、リンクに名前を付けることができます(そして、行ったことがあります)。クリックを検出するジェネリック.Clickイベントを使用することはありますか。タグでパスを開くことができますか?これを回避する他の方法はありますか?

ありがとうございます。

答えて

0

もう少し触って、私は問題を解決しました。

LinkLabel [] linkLabel = new LinkLabel [100];

 linkLabel[count] = new LinkLabel(); 
     linkLabel[count].Tag = @"N:\reuther"; 
     linkLabel[count].Text = "Click Me"; 
     tableLayoutPanel1.Controls.Add(linkLabel[count], 3, 4); 

    private void LinkedLabelClicked(object sender, LinkLabelLinkClickedEventArgs e) 
    { 
     string filepath = ((LinkLabel)sender).Tag.ToString(); 
     System.Diagnostics.Process.Start(filepath); 
    } 

この方法では、100個のリンクラベルを格納する配列を作成しました。私がそれらを作成するとき、私はいくつのリンクが作成されたかを数える方法を使用します。それぞれのリンクで、私は.Tagを使ってファイルパスを設定し、最後に文字列filepathをタグに設定しました。これにより、後でその行で開くことができました。ありがとうございました。