使用linq按名称查找控件

时间:2011-05-25 14:52:43

标签: c# winforms linq telerik ribbon

大家好,可以通过Linq找到一个名字的控件吗?

我可以为每个

迭代彻底的contorl收集
foreach (RibbonTab t in testRibbon.CommandTabs)
                    {
                        if (t.Name == tab.Name)
                        {
                            blnFound= true;

                        }
                    }

这个想法是为了节省内存。 我动态创建telerik功能区选项卡,我想查看选项卡是否存在然后不创建它我也想检查功能区栏是否具有特定的RadRibbonBarGroup和RadButtonElement,其名称与ribbontab相同,所以我不会复制。

对不起,如果我有点复杂。

2 个答案:

答案 0 :(得分:3)

bool found = testRibbon.CommandTabs.Cast<RibbonTab>().Any(t => t.name == tab.Name);

答案 1 :(得分:0)

是的,Linq-to-WindowsForms可以实现这一点。请参阅以下文章:

http://www.codeproject.com/KB/linq/LinqToTree.aspx#linqforms

您可以找到具有给定名称的所有控件,如下所示:

var namedControls= this.Descendants()
                       .Where(ctrl => ctrl.Name="NameToFind");