当控件的名称以字符串形式已知时,在运行时查找该控件



我动态创建了一个超链接

 Hyperlink objHyperlink = new Hyperlink();

根据键值,我需要将现有的超链接设置为objHyperlink

 if key == "Markets"
 then hyperlink to be set is  hyplnkIsActiveMarkets
 if key =="Budgets"
 then hyperlink to be set is  hyplnkIsActiveBudgets

我的问题是如何在运行时得到控制,我知道它的名字是"hyplnkIsActive"+"市场"("市场"是从键得到的)

der是否像FindControlByname("hyplnkIsActive"+"Markets");

试试这个

var myControl = (Control)this.FindName("Control Name");

如果你有一个所有可用超链接的列表,那么试试这个

Hyperlink FindLinkByName(IEnumerable<Hyperlink> links,string linkName)
{
  return links
        .FirstOrDefault
         ( 
            link => Equals(link.GetValue(FrameworkElement.NameProperty),linkName) 
         );
}

你可以这样命名它:

FindLinkByName(list of links, "hyplnkIsActive"+"Markets")

将创建的控件保存在具有键和对象的散列表中。这是fasted方法

最新更新