发布日期:2024-08-09 05:09 点击次数:153 |
前一段时辰有粉丝私信能不可写一篇对于言语切换的著作,emmmm,我原意了,因为我在前几年的本领作念过一个这么的边幅软件开发资讯,是以也就不错略微整理下写出来。
兑现这个需求,主要用到了Winform的腹地化功能;用资源文献的方式来兑现,真是是嗅觉浅薄便捷。如若浅薄的页面,在词库备好的情况下,只需寥寥几笔即可完成。
图片
底下先容下注意措施:
兑现功能:
Winform中英文言语切换
拓荒环境:
软件开发拓荒器具:Visual Studio 2013
.NET Framework版块:4.5
兑现措施:
在名咫尺新建一个Resource文献夹,然后创建两个资源文献,隔离定名为:Resource_en.resx和Resource_zh.resx
将窗体底下的控件以及Text(约略其他显现属性)隔离对应到词库写入到资源文献中,如下图:
图片
和值分析:近10期,红球和值范围在64--137之间开出,近十期和值的平均值是103.0,上期开出奖号和值为97,本期预测和值将下降,推荐和值在91左右。
上期龙头05,龙头最近10期分别是06 04 02 01 03 07 03 03 01 05,奇偶比为7:3,综合分析,软件开发资讯本期龙头参考:03。
图片
写一个腹地化独揽的寰宇类 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多言语切换 赢得,兑现遵循如下:
图片
由简入繁,拿来即用
后续精彩软件开发资讯,抓续矜恤
本站仅提供存储干事,通盘实质均由用户发布,如发现存害或侵权实质,请点击举报。