【问题标题】:How to find is linkLabel is clicked?如何找到链接标签被点击?
【发布时间】:2017-11-20 18:39:43
【问题描述】:

这是一些接受字典的方法。

 public void Display(Dictionary<string, string> feeds)
        {
            for (int i = 0; i < 5; i++)
            {
                int x = i + 1;
                string numberOfLable = "linkLabel" + x;
                var l = Controls.Find(numberOfLable, true).First() as LinkLabel;
                string text = feeds.ElementAt(i).Key;
                l.Text = text;


                //TO DO add click event for link label
                //that display value from Dictionary
            }

        }

如何添加代码,如果点击linkLabel[i],在textBox中会显示字典的值?

【问题讨论】:

  • 为什么即使在这种方法中你也需要添加点击,比如你最终想要做什么?为什么不使用 foreach 遍历字典?当 Dictionary 有更多/少于 5 个键时会发生什么?
  • 我使用 for 因为我需要从中访问标签名称,我不能使用 for 循环。我不知道如何在没有 foo 循环的情况下访问标签。我想在这里这样做,因为如果单击某些标签,我需要将该字典值设置为文本框。你能帮我吗

标签: c# winforms textbox linklabel


【解决方案1】:

要将链接标签链接到事件,只需

l.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(LinkLabelClicked);

LinkLabelClicked 代码如下所示

private void LinkLabelClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
    LinkLabel label = sender as LinkLabel;
    string key = label.Text;
    if (feeds.TryGetValue(key, out string value))
    {
        myTextBox.Text = value;
    }
    else
    {
        //do something to complain about the error
    }
}

【讨论】:

    猜你喜欢
    • 2014-11-11
    • 1970-01-01
    • 1970-01-01
    • 2018-09-29
    • 1970-01-01
    • 2013-10-22
    • 2023-01-28
    • 2021-12-28
    • 2012-06-06
    相关资源
    最近更新 更多