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)
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)
附件列表
相关文章推荐
- C# 委托 代理
- c#中调用windows api (按键精灵)
- C# 委托 代理
- 基于C#的单元测试(VS2015)
- C# kinect v2学习笔记(三)红外图像展示
- C#中使用TeeChart控件出现 不支持无窗口的Active控件 的解决方法
- c# 委托
- C#中的FTP类
- c#程序的阅读
- 【C#】WM 消息大全
- 软件工程-构建之法 理解C#一小段程序
- 【转】【C#】SendMessage
- C#编程之神奇程序找数
- C#---抽象类与接口
- 第一个C#程序--简易计算器
- C#实现注册码功能编程总结
- c#代码分析
- C# 千分位与两位小数点
- (转)C# 温故而知新:Stream篇(七)
- C#程序分析