你的位置:软件开发软件多少钱 > 软件开发公司 > 软件开发资讯 C# Winform多言语切换

软件开发资讯 C# Winform多言语切换

发布日期:2024-08-09 05:09    点击次数:151

前一段时辰有粉丝私信能不可写一篇对于言语切换的著作,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多言语切换 赢得,兑现遵循如下:

图片

由简入繁,拿来即用

后续精彩软件开发资讯,抓续矜恤

本站仅提供存储干事,通盘实质均由用户发布,如发现存害或侵权实质,请点击举报。