Winform程序多种语言切换

文章目录

      • 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程序

第一个窗体
Winform程序多种语言切换_第1张图片

第二个窗体
Winform程序多种语言切换_第2张图片

2.新建类库 ConfigurationSettings

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

3.配置app.config文件


    
        

如果想每次登录程序都默认英文 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 添加内容

Winform程序多种语言切换_第3张图片


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

8.LanguageConvert.Properties.Resources 添加配置

Winform程序多种语言切换_第4张图片

9.超大Bug

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


    

如果上面这些都配置好了,运行报错
Winform程序多种语言切换_第5张图片

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

10.下载链接

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

你可能感兴趣的:(.NET,Framework,c#,开发语言,后端,winform)