C# Winform 国际化

C# Winform 国际化

1、在Form的language属性选择中文,来制作中文界面
制作中文界面
保存后,设置界面标题会变成如下所示,并且会出现一个zh-CN的资源文件,打开resx文件可看到相应内容
这里写图片描述
这里写图片描述
这里写图片描述
2、将Form的language属性改为英文,其余步骤如第1步,即可生成英文资源文件
这里写图片描述
3、添加代码完成切换

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Threading;

namespace LanguageDemo
{
    public partial class Form1 : Form
    {

        ComponentResourceManager resources = new ComponentResourceManager(typeof(Form1));
        // 遍历控件,并根据资源文件替换相应属性
        private void ApplyResource()
        {
            foreach (Control ctl in this.Controls)
            {
                resources.ApplyResources(ctl, ctl.Name); 
            }
            this.ResumeLayout(false);
            this.PerformLayout();
            resources.ApplyResources(this, "$this");
        } 

        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            string s = System.Globalization.CultureInfo.InstalledUICulture.Name; //获取当前系统的语言
            Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo(s);
            ApplyResource();
        }

        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (comboBox1.SelectedIndex == 0)
            {
                Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("zh-CN");
            }
            else
            {
                Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("en-GB");
            }
            ApplyResource();
        }
    }
}

你可能感兴趣的:(C# Winform 国际化)