1

Background

I have created 8 linklabels which are created using a loop which gets data from a database. Each record fills a linklabel.

How ever how can I distinguish what linklabel has been clicked on?

Code

 for (int i = 0; i <= rowCount - 1; i++)
                {

                    LinkLabel Linklabel = new LinkLabel();
                    Linklabel.Text = ds.Tables[0].Rows[i]["code"].ToString();
                    Linklabel.Height = 15;
                    Linklabel.Width = 50;
                    Linklabel.AutoSize = true; 
                    Linklabel.Location = new Point(10, (i + 1) * 30);
                    tabControl1.TabPages[0].Controls.Add(Linklabel);
                    // Add an event handler to do something when the links are clicked. 
                    Linklabel.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel1_LinkClicked);
                }

private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            tabControl1.SelectedTab = tabPage2;
        }

When clicking on any of the 8 linklabels that are drawn the same thing will happen.

What I would like to happen?

When clicking on any of the linklabels I would like to change a label.text to what the contents of the clicked linklabel was.

For example

If the first linklabel.text=("one") is clicked on label1.text becomes one.

If the second linkedlabel.text=("two") is clicked on label1.text becomes two.

Dan Cundy
  • 2,649
  • 2
  • 38
  • 65

1 Answers1

3

You could use the sender argument in the callback which will point to the actual LinkLabel being clicked:

private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
    label1.text = ((LinkLabel)sender).Text;
}
Darin Dimitrov
  • 1,023,142
  • 271
  • 3,287
  • 2,928