0

我正在尝试遍历表单中的所有控件,以允许对我的应用程序进行语言本地化。

这就是我所拥有的。

    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));
        }
    }

它不喜欢我如何尝试从父控件派生子控件。

有人对如何完成我的任务有任何建议吗?

4

1 回答 1

0

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

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

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

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

于 2013-01-16T23:29:39.807 回答