实现这个需求,主要用到了Winform的本地化功能;用资源文件的方式来实现,真的是感觉简单方便。若是简单的页面,在词库备好的情况下,只需寥寥几笔即可完成。

下面介绍下详细步骤:

实现功能:

Winform中英文语言切换

开发环境:

开发工具: Visual Studio 2013

.NET Framework版本:4.5

实现步骤:

1.在项目下新建一个Resource文件夹,然后创建两个资源文件,分别命名为:Resource_en.resx和Resource_zh.resx

2.将窗体下面的控件以及Text(或者其他显示属性)分别对应到词库写入到资源文件中,如下图:

3.写一个本地化应用的公共类 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);}}}}

4.点击切换对应语言的时候,赋值到对应的数据

private void 英文ToolStripMenuItem_Click(object sender, EventArgs e){Thread.CurrentThread.CurrentCulture = new CultureInfo("en-us");//直接应用到对应的formLangUtil.ApplyResource(this);}private void 中文ToolStripMenuItem_Click(object sender, EventArgs e){Thread.CurrentThread.CurrentCulture = new CultureInfo("zh-cn");//直接应用到对应的formLangUtil.ApplyResource(this);}

5.完成

当然,以上是比较简单的实现,应用到项目中的话,就需要考虑到各种控件的不同属性的赋值问题了,所以需要对应的写代码来实现,但是都可以基于这一个原理去做。

若是动态数据的话,可以直接配置两套词库对应到数据库,根据选择加载不同的词库。

实现效果如下:

由简入繁,拿来即用

更多精彩,请关注微信公众号:

C# Winform多语言切换相关推荐

  1. winform多语言切换

    通用多语言方案(1) 经过实际项目需求打磨,多语言的要求如下 客户所处环境为zh-cn,环境为en-US,实际用户为不确定,可能是北韩,也能是南韩,也可以东京南,也可以大板北.,操作系统为Window ...

  2. C#的Winform多语言实现(resx文件)

    使用resx文件实现Winform多语言切换,本博文提供的代码可以实现简体中文.繁体中文.英文的切换.如果需要增加其它语言的切换,只需要编写相应的语言的resx文件即可. 并且,当修改了语言之后,会更 ...

  3. Winform界面实现控件中英文语言切换

    一.业务需求 在Winform项目的开发过程中,涉及到一个基础的功能就是需要对界面中的显示语言内容可以进行选择切换,方便不同地区的使用者快速上手使用:效果如下: 二.需求分析 需要实现对Winform ...

  4. 网页中英文语言切换解决方案

    网页中英文语言切换解决方案 参考文章: (1)网页中英文语言切换解决方案 (2)https://www.cnblogs.com/seasons1987/archive/2012/10/09/27163 ...

  5. Java Web的Struts2的多语种网站的多语言切换实例

    先看图图: 图1: 图2: 图3: 图4: 一 首先下载Properties Editor插件,该插件是支持中文的资源文件编辑器:MyEclipse 10.6 以上不用安装该插件,使用自带资源文件编辑 ...

  6. 使用Visual Studio实现WinForm多语言版本实例

    Visual Studio可以很好的支持WinForm多语言界面的实现. 首先使用Visual Studio创建一个WinForm项目,在窗体上放上所需的控件,调好位置,并使用一种语言(例如简体中文) ...

  7. html怎么实现多语言图片切换,JavaScript实现--中英语言切换功能

    最近弄的项目是面向国际的,所以老总说要有语言切换功能.第一感觉好像不难吧 网上查了下,感觉实现方法就2种: 一:2个版本的HTML.至于怎么切换,方法也很多. 不过这种方法,除了笨,我实在不知道用什么 ...

  8. 安卓换语言java_Android应用程序的语言切换

    最近项目中用用到语言切换功能,第一想到的就是资源文件,没错. 在资源文件中新建一个文件夹values-en,在里面新建一个strings.xml,把默认values文件夹中的strings.xml中的 ...

  9. qml中loader加载页面会闪屏_Qml动态语言切换

    此方法需要在Qt5.10或更高版本实现, 在Qt5.10或更高版本实现, 在Qt5.10或更高版本实现 重要的事情说三遍 首先在工程文件.pro中加入TRANSLATIONS = zh_CN.ts ...

  10. WPF ComboBox 使用 ResourceBinding 动态绑定资源键并支持语言切换

    WPF ComboBox 使用 ResourceBinding 动态绑定资源键并支持语言切换 独立观察员  2021 年 8 月 23 日 我们平常在 WPF 中进行资源绑定操作,一般就是用 Stat ...

最新文章

  1. 一起来看看Babel到底执行了什么?
  2. 动态规划——区间dp
  3. Thymeleaf中使用if和unless实现状态的判断显示达到if-else逻辑判断的效果
  4. 4W1T教程1 如何使用幻灯片
  5. 数据结构:五岔路口交通管理红绿灯设计
  6. wireshark协议
  7. Flutter的isolate异步线程机制及使用实战详解
  8. 支付宝AR实景红包寻宝攻略
  9. 常用桌面端软件开发语言整理
  10. 房产微信小程序该怎么做?
  11. Android客户端之“微服私访”App的系统学习(一) 本地服务端环境的搭建和部署
  12. Windows下的gotoxy 函数
  13. 美国企业邮箱怎么注册,有没有可替代国外邮箱的国内邮箱?
  14. Docker Swarm 命令
  15. k8s删除node节点
  16. SSM电影院购票网站
  17. 四川学计算机好的专科学院,四川有哪些好的计算机编程专科学校
  18. PHP微信管理,公众号系统,RhaPHP微信公众号管理系统,微信公众号开发框架,支持移动端管理...
  19. 如何查看MySQL数据库的版本
  20. CGCS2000坐标系与其他坐标系间的差异和转换方法

热门文章

  1. 临时邮箱email网址收集
  2. 推荐好用的临时邮箱工具,解决注册网站收到的垃圾邮件
  3. 计算机模拟求解流体力学方程,计算流体力学模拟(CFD模拟)FLUENT中的湍流模型(一)...
  4. 计算机怎么把文字转换成表格,如何将EXCEL的图片转换成excel表格或者文字?,Word将文字转化成表格...
  5. FlashFXP注册码-FlashFXP密钥
  6. mysql查出每个类型时间最早的记录
  7. python爬虫——彼岸图网
  8. linux 时间戳是什么数据类型,Linux时间戳、时间类型转换
  9. 图像处理:图像灰度化
  10. 抖音康辉机器人_央视主持人太会玩!康辉录抖音,笑死了!