我需要实现多国语言的界面切换,而且切换各种语言版本的时候希望程序是动态的加载语言,不希望切换语言后重新启动程序。
在.net2.0 中,m$ 为我们提供了一种简单方便的方法, 使用资源文件1.新建一个 Winform 应用程序, 新建一 Form ,名为 Form1,添加两个按钮 btnChinese, btnEnglish
2. 设置 Form1 的 Localizable 属性为 true, 设置该属性后,.net 将根据不同的语言,为应用程序生成不同的资源文件
3.设置各个控件的文本(系统默认语言下)
4.更改 Form1 的 Language 属性为想要支持的另一种语言,此例中我们选用 English
5.重新设置各个控件的文本
注:修改各控件上的字符串,一旦改变某个控件的属性,VS就会自动生成一个资源文件formname.en-US.resx。
资源文件命名方式 [资源文件主题名].[语言区域.].resx
在.NET开发中,VS2010为每一个窗口都自动创建一个与窗口同名的资源文件,后缀名为.resx(如下图)
对于一个窗口,我们添加了其相应的几个语言版本的resx资源文件以后,就应该在资源文件中添加不同语言版的字符串资源。需要注意的是,不同语言版本的资源文件中,相应各个语言的版本的字符串的名字必须是相同的!见下面的截图,两个资源文件中的不同版本的字符串资源的名字是相同的。
7.编写代码
































foreach (Control ctl in Controls)
{
res.ApplyResources(ctl, ctl.Name);
}
this.ResumeLayout(false);
this.PerformLayout();
res.ApplyResources(this, "$this");
