文章目录

  • 1.创建winform程序
  • 2.新建类库 ConfigurationSettings
  • 3.配置app.config文件
  • 4.新建类库 StringResources
  • 5.为了方便多窗体调用,将方法封装
  • 6.主窗体,添加代码
  • 7.Resources.resx Resources.en.resx 添加内容
  • 8.LanguageConvert.Properties.Resources 添加配置
  • 9.超大Bug
  • 10.下载链接

1.创建winform程序

第一个窗体

第二个窗体

2.新建类库 ConfigurationSettings

从我Demo中拷贝此类库下的所有类

3.配置app.config文件

<configuration><configSections><section name="StartUpConfiguration"
type="ConfigurationSettings.StartUpConfigSection, ConfigurationSettings" /></configSections><StartUpConfiguration><Languages Default ="zh-CN" ><add Name ="en-US"/><add Name ="zh-CN"/></Languages></StartUpConfiguration>
</configuration>

如果想每次登录程序都默认英文 Default =“en-US

4.新建类库 StringResources

新建两个资源文件,一个是用来存中文,一个是用来存英文
Resources.resx
Resources.en.resx
这个文件中都是定义的内部类,内部方法,双击两个文件,将访问修饰符全部修改为 public

5.为了方便多窗体调用,将方法封装

主项目下新建文件夹 Language,新建类 LanguageManager.cs,将代码从Demo中粘贴过来

为了方便引入命名空间,主项目把之前的两个类库添加引用

System.Resources.ResourceManager _rm   实例化对象!!!!! 移动代码的时候一定要看好,第一个参数,看好你的中英文配置是否是在此项目下的资源文件中,必须是主项目名字

添加引用如下

using System.Configuration;
using ConfigurationSettings;
using LanguageConvert.Properties;
using System.Globalization;
using System.Threading;
using System.Resources;

6.主窗体,添加代码

给语言下拉菜单赋数据源

private void Form1_Load(object sender, EventArgs e)
{//LanguageConvert{this.cbxLanguage.DataSource = LanguageManager.Nativevalue;this.cbxLanguage.SelectedItem = new
CultureInfo(LanguageManager.strDefaultLanguage).NativeName;}
}

语言下拉菜单,添加代码

private void cbxLanguage_SelectedIndexChanged(object sender, EventArgs e){string value = cbxLanguage.Text;LanguageManager.ChangeLanguage(value);this.Text = LanguageManager.GetByKey("mainForm");this.lbl_language.Text = LanguageManager.GetByKey("m_lbl_language");this.dgv.Columns["column1"].HeaderText =
LanguageManager.GetByKey("m_dgv_c1");this.ts_btn.Text = LanguageManager.GetByKey("m_ts_btn");}

7.Resources.resx Resources.en.resx 添加内容


[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hikrhLWH-1644974419618)(en-resource://database/1268:1)]

8.LanguageConvert.Properties.Resources 添加配置

9.超大Bug

App.config文件中,自动生成了如下代码:

<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>

如果上面这些都配置好了,运行报错

就是startup这个标签引起的,全部删除,就没有问题

10.下载链接

Demo下载链接: 百度云
提取码:44ry

Winform程序多种语言切换相关推荐

  1. 微信小程序 多语言切换 i18n

    1.小程序根目录添加目录i18n 新建 en.js; zh_CN.js 两个文件分别存放英文和中文的对照 en.js const languageMap = {"登录" : &qu ...

  2. iOS 程序内语言切换 -- 中英文切换

    随着时代的发展,应用程序相继出现了不同语言的版本方案,中文,英文,法文,韩文等等:想在应用程序中实现语言的自由切换,需要配置多个语言的文件,根据用户的动态选择获取不同语言文件下的语言文件,从而显示到界 ...

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

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

  4. iOS开发:国际化之app支持多种语言切换

    iOS国际化:如何切换语言 1.国际化就是将标签.提示信息等信息放到资源文件中,随着程序需要的语言提供对应的资源文件.以key/value对存储,每个资源的key值不变,value随着需求改变. 一般 ...

  5. 2.4 Qt多国语言切换

     如果要实现qt程序动态语言切换,最简单有效的方法是使用QTranslator类,首先使用QTranslator对象加载相应的翻译语言文件,然后用 QApplication::installTrans ...

  6. WinForm 程序的界面多语言切换

    下面介绍一种只需对现有代码做较小改动的方法. 在 Visual Studio 的设计视图中,如果在 Properties 窗口中改变了程序的默认界面语言(Language),我们会注意到无论是工程还是 ...

  7. C#如何开发多语言支持的Winform程序

    C# Winform项目多语言实现(支持简/繁/英三种语言) 有很多种方案实现多语言,我在这里介绍一种最简单最容易理解的,作为教学材题应该从通俗易懂入手.在写这篇文章之前,本来想用枚举窗体对象成员的方 ...

  8. 在运行时切换 WinForm 程序的界面语言 System.ComponentModel.ComponentResourceManager .ApplyResources...

    Download the code for this article: WinForm-Multilanguages-2.rar (11 KB). 方法二: 下面介绍一种只需对现有代码做较小改动的方法 ...

  9. C++如何实现系统语言切换功能,MessageBox的确认/取消按钮语言显示如何跟程序一致

    文章目录 前言 一.新建工程 二.添加多国语言的资源 三.程序语言设置 四.语言切换 五.字符串处理 六.MessageBox的问题 七.相关函数和类型 参考文章 前言   目前很多软件都是要出口到多 ...

  10. QML程序实现动态切换多语言

    原文地址::https://zhuanlan.zhihu.com/p/40815590 Qt程序中实现多语言有Qt自己的一套机制,然而目前在5.9版本下该机制无法在程序运行期间动态切换语言.本文向大家 ...

最新文章

  1. 06Chrome调试工具
  2. python主辅线程_python主线程捕获子线程的方法
  3. 如何为linux 桌面文件内存,linux - 桌面Linux发行版中.desktop文件的功能是什么? - 堆栈内存溢出...
  4. Windows 用来定位 DLL 的搜索路径
  5. Linux设备模型组件-类设备-设备类及subsystem
  6. SAP Spartacus的Responsive和adaptive特性
  7. C语言深度剖析书籍学习记录 第四章 指针和数组
  8. poj2516Minimum Cost
  9. 读zac老哥《网络营销实战密码》一章有感
  10. Jquery ajax异步请求样板
  11. liux环境下配置jdk
  12. 解决无法下载安装Android SDK的问题
  13. stm32最小原理图的PCB图绘制(含AHT20温度传感器)
  14. 面向电缆行业的高级计划与排程(商简SPS)解决方案
  15. 数据格式化 string.format()
  16. 海康威视java研发一面
  17. 2022北京养老展(中国国际老年产业博览会)
  18. 大数据时代,为什么很多JAVA程序员会转型做JAVA大数据
  19. Demo---progress-steps------ 2/50(详解)
  20. NLP-D33-毕设答辩-《人类语言处理》04-05-Location-aware-attentionCTC大数据比赛报名答辩被从源头上暴

热门文章

  1. HLW8032串口通讯芯片的三相电参数采集系统项目资料
  2. CV520直接pin对pin替换 MS520,直接替换,无需修改硬件以及软件
  3. win10 系统下CAD2009缩放卡顿问题解决
  4. 手机app测试点有哪些?手机app测试用例怎么写?错过绝对后悔!
  5. html分页过多,实现分页处理,固定分页数目,数目始终中间显示,自定义分页跳转(在结尾的代码)
  6. 摩托车头盔的逆向建模与设计
  7. 找特征点的算法 SIFT和SURF算法
  8. 【渝粤教育】电大中专跨境电子商务理论与实务 (31)作业 题库
  9. 【Linux】ssh的安装及配置
  10. linux卸载bzip2,bzip2命令_Linux bzip2命令:压缩和解压文件(.bz2文件)