背景

我已经创建了8个linklabel,它们是使用从数据库获取数据的循环创建的。
每个记录都填充一个链接标签。

我怎样才能区分单击了哪个链接标签?



 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;
        }


单击绘制的8个链接标签中的任何一个时,都会发生相同的情况。

我想发生什么?

单击任何链接标签时,我想将label.text更改为所单击的链接标签的内容。

例如

如果单击第一个linklabel.text=("one"),则label1.text变为1。

如果在linkedlabel.text=("two")上单击第二个label1.text,则该值变为2。

最佳答案

您可以在回调中使用sender参数,该参数将指向实际单击的LinkLabel

private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
    label1.text = ((LinkLabel)sender).Text;
}

关于c# - 如何知道单击了哪些Linklabel?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28141697/

10-09 20:14
查看更多