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));