【发布时间】:2013-01-16 23:23:44
【问题描述】:
我正在尝试遍历表单中的所有控件,以允许对我的应用程序进行语言本地化。
这就是我所拥有的。
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));
}
}
它不喜欢我尝试从父控件派生子控件的方式。
有人对如何完成我的任务有任何建议吗?
【问题讨论】:
-
您遇到什么错误?在哪一行?编译器错误还是运行时错误?
-
为什么不使用 .NET 内置的本地化?如果您创建一个文件
ResourceFile.FR-fr.resx,它将在语言环境设置为法国时自动获取它。 -
在使用控件更改任何内容之前,您可能需要编写代码来检查类型,例如,如果控件是 TextBox,则执行某些操作..