码迷,mamicode.com
首页 > 编程语言 > 详细

c# 多语言设置

时间:2016-03-20 00:33:56      阅读:357      评论:0      收藏:0      [点我收藏+]

标签:

设置Form中localiziable 为true   设置语言为所需语言  
主要为:
Thread.CurrentThread.CurrentUICulture = CultureInfo.GetCultureInfo("zh-CN");
            //对当前窗体应用更改后的资源
            ApplyResource();
在APplayResource();
中首先引用所需改变的控件的容器窗体
System.ComponentModel.ComponentResourceManager res = new ComponentResourceManager(typeof(Form1));
然后遍历容器中控件并应用资源
对自定义控件,其窗体一般为UserControl* 在对自定义资源改变时需要重新引用资源文件
System.ComponentModel.ComponentResourceManager res = new ComponentResourceManager(typeof(userControl*));


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

using System.Threading;
using System.Globalization;

namespace GlobalResource
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }       

        private void 退出ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }

        private void 中文ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            //更改当前线程的 CultureInfo
            //zh-CN 为中文,更多的关于 Culture 的字符串请查 MSDN
            Thread.CurrentThread.CurrentUICulture = CultureInfo.GetCultureInfo("zh-CN");
            //对当前窗体应用更改后的资源
            ApplyResource();
        }

        private void 英文ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            //更改当前线程的 CultureInfo
            //en 为英文,更多的关于 Culture 的字符串请查 MSDN
            Thread.CurrentThread.CurrentUICulture = CultureInfo.GetCultureInfo("en");
            //对当前窗体应用更改后的资源
            ApplyResource();
        }
        ///

        /// 应用资源
        /// ApplyResources 的第一个参数为要设置的控件
        ///                  第二个参数为在资源文件中的ID,默认为控件的名称
        ///

        private void ApplyResource()
        {
            System.ComponentModel.ComponentResourceManager res = new ComponentResourceManager(typeof(Form1));
            foreach (Control ctl in Controls)
            {
                res.ApplyResources(ctl, ctl.Name);
            }

            //菜单
            foreach (ToolStripMenuItem item in this.menuStrip1.Items)
            {
                res.ApplyResources(item, item.Name);
                foreach (ToolStripMenuItem subItem in item.DropDownItems)
                {
                    res.ApplyResources(subItem, subItem.Name);
                }
            }

            //Caption
            res.ApplyResources(this, "$this");
        }
    }
}
 判断操作系统语言的方法:
private void Form1_Load(object sender, EventArgs e)
{
    不需要判断操作系统的语言,使用资源文件会自动选择。
    if (System.Globalization.CultureInfo.InstalledUICulture.Name == "zh-CN")
    {
       Thread.CurrentThread.CurrentUICulture = CultureInfo.GetCultureInfo("zh-CN");
       //对当前窗体应用更改后的资源
       ApplyResource();
    }
    else
    {
       Thread.CurrentThread.CurrentUICulture = CultureInfo.GetCultureInfo("en");
       //对当前窗体应用更改后的资源
       ApplyResource();
    }
}
技术分享





附件列表

     

    c# 多语言设置

    标签:

    原文地址:http://www.cnblogs.com/m9zjl/p/5296705.html

    (0)
    (0)
       
    举报
    评论 一句话评论(0
    登录后才能评论!
    © 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
    迷上了代码!