0

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

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

私が抱えている問題は、これらの列の一部が空になる可能性があることです。つまり、いつでも合計でいくつあるかわかりません。私がオンラインで見たすべてのメモは、動的リンクに名前を付けてから、特定のリンクが名前でクリックされたことを検出するプライベート関数の使用に進みます。実行時まで必要なリンクの数がわからないため、それはできません。私の例では、リンクに名前を付けることはできますが、クリックを検出する一般的な.Clickイベントを使用する方法はありますか?その時点で、タグでパスを開くことができますか? これを回避する他の方法はありますか?

ありがとうございました。

4

1 に答える 1

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 を使用してファイルパスを設定し、最後に文字列ファイルパスをタグに設定しました。これにより、後でその行で開くことができました。ありがとうございました。

于 2016-03-29T02:26:32.807 に答える