3

ユーザーが動的リンク ラベルによって作成されたビジネス名をクリックできるようにするプログラムを作成しています。

どのようにそれを行うかを知りたいと思う前に、C#でリンクラベルを使用したことはありません。特定のユーザーに対して生成できるビジネスの数はさまざまであるため、リンク ラベルの数はユーザーごとに同じではありません。

次に、ビジネス ID を取得して Json 呼び出しを行いたいと考えています。

ビジネス名を入力するための私のコード

// fill in the business names as linked labels
if (GlobalClass.Businesses != null)
{
     tableLayoutPanel.Controls.Clear();                     

     foreach (var business in GlobalClass.Businesses)
     {
          tableLayoutPanel.Controls.Add(new LinkLabel { Text = business.businessName.ToString() });
     }
}

ビジネスクラスはこんな感じで、上記のビジネスインビジネスは一覧です。

public class Business
{
    public string businessID { get; set; }
    public string businessName { get; set; }
}

ビジネス名をクリックしてビジネス ID を取得するには、どうすればよいですか?

c# で foreach を使用してリンク ラベルを動的に作成する方法を見てきましたが、あまり役に立ちませんでした

4

2 に答える 2

5

クリック ハンドラーを宣言します。

private void MyLinkClick(object sender, ...)
{
    var linkLabel = (LinkLabel) sender;
    var business = (Business) linkLabel.Tag;
    /* do something with business */
}

foreach を変更します。

foreach (var business in GlobalClass.Businesses)
{
     var linkLabel = new LinkLabel { Text = business.businessName.ToString(), Tag = business };
     linkLabel.Click += MyLinkClick;
     tableLayoutPanel.Controls.Add(linkLabel);
}
于 2013-11-12T16:17:43.990 に答える
1

TagのプロパティLinkLabelを自分のプロパティのプロパティと同じに設定しbusiness.businessIDます。のハンドラーを追加しLinkLabel、アイテムがクリックされたら、 を にキャストしsenderてプロパティLinkLabelにアクセスしTagます。

于 2013-11-12T16:17:53.950 に答える