无法按名称查找控件

时间:2013-05-17 17:54:40

标签: c# winforms controls tooltip

我正在用C#编写应用程序,其中一个要求是以编程方式本地化UI的文本/工具提示。我正在阅读从XML到变量的语言环境信息。我需要能够通过名称来识别控件,然后更改文本(按钮)和/或工具提示。到目前为止,我甚至无法获得适当的控制权。

作为循环的一部分,我尝试过:

Control c = this.Controls.Find(cont.Name, true).FirstOrDefault() as Control;

其中cont.Name包含控件的名称。我得到的所有c都是空的。我知道控件确实存在于窗体上,我只是无法访问它。

另外,从目前为止我所看到的情况来看,我不知道如何以我需要的方式更改ToolTipText,例如

c.ToolTipText = cont.ToolTip;

此外,这一切都发生在用户控件中,我尝试访问的所有子控件都在工具条上。

我真的很感激任何帮助。

1 个答案:

答案 0 :(得分:0)

时间以前,当我遇到同样的问题时,我通过在Controls列表中循环并询问它的名称是否包含在我的控件名称列表中(在您的情况下,从您的XML文件中)来解决。

Control.ControlCollection controls = this.Controls;

foreach (Control cont1 in controls)
{
     if(contList.Contains(cont1.Name))
     {
           //Your code
     }
}