【问题标题】:How to know what Linklabel has been clicked?如何知道点击了什么链接标签?
【发布时间】:2015-01-25 21:24:54
【问题描述】:

背景

我创建了 8 个链接标签,这些链接标签是使用从数据库中获取数据的循环创建的。 每条记录填充一个链接标签。

如何区分点击的是什么链接标签?

代码

 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变成一个。

如果点击第二个linkedlabel.text=("two") label1.text 变成两个。

【问题讨论】:

    标签: c# loops event-handling linklabel


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-09-14
      • 2011-08-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多