c# winform 多语言切换 本地化
2010-03-29 15:05
267 查看
using System;
using System.Windows.Forms;
using System.ComponentModel;
using System.Threading; /// 线程空间
namespace Liang.LanguageLibrary
{
///
/// 语言库 class
///
public class SetLanguage
{
///
/// 设置当前程序的界面语言
///
/// 语言
/// 窗体
/// 窗体类型
public static void SetLang(string lang, Form form, Type frmtype)
{
Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo(lang);
if (form != null)
{
ComponentResourceManager resources = new ComponentResourceManager(frmtype);
resources.ApplyResources(form, "$this");
AppLang(form, resources);
}
}
#region AppLang for Control
///
/// 遍历窗体所有控件,针对其设置当前界面语言
///
///
///
private static void AppLang(Control control, ComponentResourceManager resources)
{
if (control is MenuStrip)
{
//将资源应用与对应的属性
resources.ApplyResources(control, control.Name);
MenuStrip ms = (MenuStrip)control;
if (ms.Items.Count > 0)
{
foreach (ToolStripMenuItem c in ms.Items)
{
//调用 遍历菜单 设置语言
AppLang(c, resources);
}
}
}
foreach (Control c in control.Controls)
{
resources.ApplyResources(c, c.Name);
AppLang(c, resources);
}
}
#endregion
#region AppLang for menuitem
///
/// 遍历菜单
///
///
///
private static void AppLang(ToolStripMenuItem item, System.ComponentModel.ComponentResourceManager resources)
{
if (item is ToolStripMenuItem)
{
resources.ApplyResources(item, item.Name);
ToolStripMenuItem tsmi = (ToolStripMenuItem)item;
if (tsmi.DropDownItems.Count > 0)
{
foreach (ToolStripMenuItem c in tsmi.DropDownItems)
{
//if (tsmi != ToolStripSeparator)
//{ }
AppLang(c, resources);
}
}
}
}
#endregion
}
}
调用:SetLanguage.SetLang("zh-CHS", this, typeof(Loginfrm));
using System.Windows.Forms;
using System.ComponentModel;
using System.Threading; /// 线程空间
namespace Liang.LanguageLibrary
{
///
/// 语言库 class
///
public class SetLanguage
{
///
/// 设置当前程序的界面语言
///
/// 语言
/// 窗体
/// 窗体类型
public static void SetLang(string lang, Form form, Type frmtype)
{
Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo(lang);
if (form != null)
{
ComponentResourceManager resources = new ComponentResourceManager(frmtype);
resources.ApplyResources(form, "$this");
AppLang(form, resources);
}
}
#region AppLang for Control
///
/// 遍历窗体所有控件,针对其设置当前界面语言
///
///
///
private static void AppLang(Control control, ComponentResourceManager resources)
{
if (control is MenuStrip)
{
//将资源应用与对应的属性
resources.ApplyResources(control, control.Name);
MenuStrip ms = (MenuStrip)control;
if (ms.Items.Count > 0)
{
foreach (ToolStripMenuItem c in ms.Items)
{
//调用 遍历菜单 设置语言
AppLang(c, resources);
}
}
}
foreach (Control c in control.Controls)
{
resources.ApplyResources(c, c.Name);
AppLang(c, resources);
}
}
#endregion
#region AppLang for menuitem
///
/// 遍历菜单
///
///
///
private static void AppLang(ToolStripMenuItem item, System.ComponentModel.ComponentResourceManager resources)
{
if (item is ToolStripMenuItem)
{
resources.ApplyResources(item, item.Name);
ToolStripMenuItem tsmi = (ToolStripMenuItem)item;
if (tsmi.DropDownItems.Count > 0)
{
foreach (ToolStripMenuItem c in tsmi.DropDownItems)
{
//if (tsmi != ToolStripSeparator)
//{ }
AppLang(c, resources);
}
}
}
}
#endregion
}
}
调用:SetLanguage.SetLang("zh-CHS", this, typeof(Loginfrm));
相关文章推荐
- c# winform 多语言切换 本地化
- C#区域性语言(CultureInfo)与资源本地化(WINFORM,多线程,原理可适用于网络开发)
- C# Winform软件多语言(汉语、英语。。。)界面的切换,低耦合
- 在运行时切换 WinForm 程序的界面语言 ---------多语言设置基础
- C#+Winform 实现切换用户功能
- Silverlight中本地化的实现(语言切换)
- c# winform 点击按钮切换tabcontrol标签
- WinForm程序的界面多语言切换
- c#软件实现语言版本切换
- C# WinForm 中在窗口标题栏上加按钮-.NET教程,C#语言
- 报表源代码 winform c# -基于DexExpressXtraReport的打印报表,后台生成报表,winform版本,采用C#语言封装,比金质通更强大,现在开放源代码
- C#的Winform多语言实现(resx文件)
- 如何在运行时切换WinForm程序使用的语言?
- iOS实现应用内切换本地化语言的方法实例
- C#在WinForm和Web中实现回车键代替TAB键切换控件焦点
- C#实现多国语言的界面切换
- C# 简单反射实现winform左侧树形导航,右侧切换内容
- iOS 语言切换、本地化,国际化
- C#中 动态切换当前界面的语言
- 用c#创建支持多语言的WinForm应用程序