你的位置:首页-九名东仓储有限公司 > 新闻资讯 >
发布日期:2024-06-21 16:55 点击次数:51
前一段时刻有粉丝私信能不行写一篇对于言语切换的著作,emmmm,我答允了,因为我在前几年的时候作念过一个这么的技俩,是以也就不错稍许整理下写出来。
杀青这个需求,主要用到了Winform的腹地化功能;用资源文献的方法来杀青,确凿是嗅觉简便便捷。如果简便的页面,在词库备好的情况下,只需寥寥几笔即可完成。
图片
底下先容下堤防时间:
杀青功能:
Winform中英文言语切换
开发环境:
开发器具:Visual Studio 2013
.NET Framework版块:4.5
杀青时间:
在技俩前新建一个Resource文献夹,然后创建两个资源文献,永别定名为:Resource_en.resx和Resource_zh.resx
将窗体底下的控件以及Text(简略其他泄漏属性)永别对应到词库写入到资源文献中,如下图:
图片
图片
写一个腹地化欺诈的群众类 LangUtil,本色如下:
public class LangUtil { static ComponentResourceManager res; public static void ApplyResource(Control control) { switch (Thread.CurrentThread.CurrentCulture.Name) { case "en-US": res = new ComponentResourceManager(typeof(Resource.Resource_en)); break; case "zh-CN": res = new ComponentResourceManager(typeof(Resource.Resource_zh)); break; default: res = new ComponentResourceManager(typeof(Resource.Resource_zh)); break; } res.ApplyResources(control, control.Name, 哈密市星齐土特产有限公司 Thread.CurrentThread.CurrentCulture); applyControl(control.GetType().Name, 首页-达富安机场有限公司 control); } //递归欺诈到控件 private static void applyControl(string topName,首页-新昌佳机场有限公司 Control control) { foreach (Control ctl in control.Controls) { res.ApplyResources(ctl, topName + "." + ctl.Name, Thread.CurrentThread.CurrentCulture); if (ctl.HasChildren) { applyControl(topName, ctl); } } } }
点击切换对应言语的时候,农机具赋值到对应的数据
private void 英文ToolStripMenuItem_Click(object sender, EventArgs e) { Thread.CurrentThread.CurrentCulture = new CultureInfo("en-us"); //径直欺诈到对应的form LangUtil.ApplyResource(this); } private void 汉文ToolStripMenuItem_Click(object sender, EventArgs e) { Thread.CurrentThread.CurrentCulture = new CultureInfo("zh-cn"); //径直欺诈到对应的form LangUtil.ApplyResource(this); }
完成
诚然,以上是相比简便的杀青,欺诈到技俩中的话,就需要筹商到各式控件的不同属性的赋值问题了,是以需要对应的写代码来杀青,然而王人不错基于这一个旨趣去作念。
如果动态数据的话,不错径直建设两套词库对应到数据库,把柄聘请加载不同的词库。
另外,为了便捷一些可爱径直看源码的一又友,我写了个小Demo放到网盘上了,可径直私:Winform多言语切换 取得,杀青恶果如下:
图片
由简入繁,拿来即用
后续精彩农机具,抓续温雅
本站仅提供存储劳动,通盘本色均由用户发布,如发现存害或侵权本色,请点击举报。上一篇:交银海外为其独家保荐东谈主
下一篇:没有了