您的位置:首页 > 编程语言 > C#

c# 多语言设置

2016-03-19 23:11 465 查看
设置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();
}
}


来自为知笔记(Wiz)

附件列表

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: