您的位置:首页 > 其它

【原创】:WinForm使用XML动态加载多语言

2011-08-16 14:55 435 查看
 

View Code

///<summary>
/// 加载语言文件
///</summary>
privatevoid LoadLanguage()
{
LanguageSeting langset =new LanguageSeting();
string strLanguage = ConfigurationManager.AppSettings["Language"];
if (!strLanguage.Equals("Chinese"))
{
langset.GetFrmLanguage(this.Name);
string temp ="";
//加载菜单
foreach (ToolStripMenuItem ctl inthis.menuStrip1.Items)
{
temp = langset.GetFrmCtlLanguage(this.Name, ctl.Name);
if (temp.Length >0)
ctl.Text = temp;
for (int i =0; i < ctl.DropDownItems.Count; i++)
{
if (ctl.GetType() ==typeof(ToolStripMenuItem))
{
temp = langset.GetFrmCtlLanguage(this.Name, ctl.DropDownItems[i].Name);
if (temp.Length >0)
ctl.DropDownItems[i].Text = temp;
}
}
}

foreach (ToolStripItem ctl inthis.toolStrip1.Items)
{
temp = langset.GetFrmCtlLanguage(this.Name, ctl.Name);
if (temp.Length >0&& ctl.GetType()==typeof(ToolStripButton))
ctl.Text = temp;
}
}
}


每个窗体加载的时候

调用

LoadLanuageSettings(this);方法即可

效率还行,40多个控件的页面加载文字并显示的速度在12毫秒左右,可以忽略不计.

如果需要动态切换,再次调用即可.

作为一个初学者,可能代码中还有不恰当的地方,还请各位多多指出.

运行效果图:



该方法优点:

1.语言文件配置文件可以完全自动生成,只要稍加修改即可.

2.可以动态加载语言配置文件.

3.配置文件修改方便.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: