public class MyStyleFormBase : Form
{
public MyStyleFormBase()
{
if (!Thread.CurrentThread.CurrentUICulture.Name.Equals("zh-CHS", StringComparison.OrdinalIgnoreCase)) //如果是简体,则无需转换
{
base.TextChanged += MyStyleFormBase_TextChanged;
base.Shown += MyStyleFormBase_Shown;
}
}
private void MyStyleFormBase_TextChanged(object sender, EventArgs e)
{
this.Text = LanguageHelper.GetLanguageText(this.Text);
}
private void MyStyleFormBase_Shown(object sender, EventArgs e)
{
LanguageHelper.SetControlLanguageText(this);
base.ControlAdded += MyStyleFormBase_ControlAdded;
}
private void MyStyleFormBase_ControlAdded(object sender, ControlEventArgs e)
{
LanguageHelper.SetControlLanguageText(e.Control);
}
/// <summary>
/// 强制通知子控件改变消息
/// </summary>
/// <param name="target"></param>
protected virtual void PerformChildrenChange(Control target)
{
LanguageHelper.SetControlLanguageText(target);
}
/// <summary>
/// 弹出消息框
/// </summary>
/// <param name="text"></param>
/// <param name="caption"></param>
/// <param name="buttons"></param>
/// <param name="icon"></param>
/// <param name="defaultButton"></param>
/// <returns></returns>
protected DialogResult MessageBoxShow(string text, string caption, MessageBoxButtons buttons = MessageBoxButtons.OK, MessageBoxIcon icon = MessageBoxIcon.None, MessageBoxDefaultButton defaultButton = MessageBoxDefaultButton.Button1)
{
return MessageBox.Show(LanguageHelper.GetLanguageText(text), LanguageHelper.GetLanguageText(caption), buttons, icon, defaultButton);
}
}
public partial class MyStyleFormBase : Form
{
public MyStyleFormBase()
{
base.TextChanged += MyStyleFormBase_TextChanged;
}
private void MyStyleFormBase_TextChanged(object sender, EventArgs e)
{
if (!Common.IsChsLanguage())
{ this.Text = LanguageHelper.GetLanguageText(this.Text); }
}
/// <summary>
/// 弹出消息框
/// </summary>
/// <param name="text"></param>
/// <param name="caption"></param>
/// <param name="buttons"></param>
/// <param name="icon"></param>
/// <param name="defaultButton"></param>
/// <returns></returns>
protected DialogResult MessageBoxShow(string text, string caption = "提示", MessageBoxButtons buttons = MessageBoxButtons.OK, MessageBoxIcon icon = MessageBoxIcon.None, MessageBoxDefaultButton defaultButton = MessageBoxDefaultButton.Button1)
{
if (!Common.IsChsLanguage())
{
text = LanguageHelper.GetLanguageText(text);
caption = LanguageHelper.GetLanguageText(caption);
}
return MessageBox.Show(text, caption, buttons, icon, defaultButton);
}
}
/// <summary>
/// 支持多语言普通控件(无子控件)
/// </summary>
public interface IMultiLanguageControl
{
string DefaultLangText { get; }
string CurrentLangText { get; set; }
}
/// <summary>
/// 支持多语言容器控件(包含子控件)
/// </summary>
public interface IMultiLanguageContainerControl
{
Dictionary<object, string> DefaultLangTexts { get; }
Dictionary<object, string> CurrentLangTexts { get; set; }
Control this[string ctrlName] { get; set; }
void SetItemCurrentLangText(string ctrlName, string langText);
event EventHandler<ChildrenAddedEventArgs> ChildrenChanged;
}
public class ChildrenAddedEventArgs : EventArgs
{
public Dictionary<object, string> LangTexts { get; private set; }
public ChildrenAddedEventArgs()
{
LangTexts = new Dictionary<object, string>();
}
public ChildrenAddedEventArgs(Dictionary<object, string> langTexts)
{ this.LangTexts = langTexts; }
public string this[object key]
{get
{
return LangTexts[key];
}
set
{
LangTexts[key] = value;
} }}
public partial class MyStyleButton : MyButton, IMultiLanguageControl
{
static Dictionary<string, string> LanDict = new Dictionary<string, string>();
public MyStyleButton()
{ }
public override string Text
{
get
{
if (!DesignMode && System.Threading.Thread.CurrentThread.CurrentUICulture.Name != "zh-CHS")
{
if (LanDict.ContainsKey(DefaultLangText))
{
return CurrentLangText;
}
else
{
string langText = LanguageHelper.GetLanguageText(base.Text);
LanDict[base.Text] = langText;
return langText;
}
}
return base.Text;
}
set
{
base.Text = value;
}
}
[Browsable(false)]
[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
public string DefaultLangText
{
get
{
return base.Text;
}
}
[Browsable(false)]
[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
public string CurrentLangText
{
get
{
try
{
return LanDict[DefaultLangText];
}
catch (Exception)
{
return "";
}
}
set
{
if (System.Threading.Thread.CurrentThread.CurrentUICulture.Name != "zh-CHS")
{
if (LanDict.ContainsKey(DefaultLangText))
{
LanDict[DefaultLangText] = value;
}
else
{
LanDict.Add(DefaultLangText, value);
}
}
}
}
}
public static bool IsChsLanguage()
{
return System.Threading.Thread.CurrentThread.CurrentUICulture.Name.Equals("zh-CHS", StringComparison.OrdinalIgnoreCase);
}
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有