递归循环遍历表单上的所有控件

本文关键字:控件 循环 遍历 表单 递归 | 更新日期: 2023-09-27 17:53:40

我正在尝试循环通过我的形式中的所有控件,以允许我的应用程序的语言本地化。

这是我的。

    private void ChangeLanguage(string lang, ControlCollection controls)
    {
        foreach (Control c in controls)
        {
            ChangeLanguage(lang, c.Controls);
            ComponentResourceManager resources = new ComponentResourceManager(typeof(Form1));
            resources.ApplyResources(c, c.Name, new CultureInfo(lang));
        }
    }

它不喜欢我试图从父控件派生子控件的方式。

有谁能给我一些建议来完成我的任务吗?

递归循环遍历表单上的所有控件

确认。不要这样做。查看全球化和本地化。基本上你会使用

  • 资源管理器,
  • Thread.CurrentThread。CurrentCulture,
  • Thread.CurrentThread.CurrentUICulture。

将控件绑定到ResourceManager或在呈现表单时从资源管理器填充值是正确的方法。神奇的事情发生在本地化的ResourceManager .resx中。

http://msdn.microsoft.com/en-us/library/y99d1cd3%28v=vs.80%29.aspx