多窗体最好继承一个父窗体,在父窗体Load事件中执行此方法

添加引用 using Microsoft.VisualBasic;

         #region 语言切换
/// <summary>
/// 语言切换
/// </summary>
public static void ChangeLanguage(Form f)
{
if (!StaticInfo.ChangeLanguage) return; //设置窗体标题
f.Text = GetLanguage(f.Text); //遍历Form上的所有控件
foreach (Control control in f.Controls)
{
if (control is Panel || control is GroupBox)
{
foreach (Control con in control.Controls)
{
SetLanguage(con);
}
}
else
{
SetLanguage(control);
}
}
} private static void SetLanguage(Control con)
{
//设置按钮
Button btn = con as Button;
if (btn != null)
{
btn.Text = GetLanguage(btn.Text);
} //设置文本标签
Label lb = con as Label;
if (lb != null)
{
lb.Text = GetLanguage(lb.Text);
} //设置复选框
CheckBox cb = con as CheckBox;
if (cb != null)
{
cb.Text = GetLanguage(cb.Text);
} //设置菜单栏
MenuStrip ms = con as MenuStrip;
if (ms != null)
{
foreach (ToolStripMenuItem item in ms.Items)
{
if (StaticInfo.Language.ToUpper() == "CN")
{
item.Text = Strings.StrConv(item.Text, VbStrConv.TraditionalChinese, );
for (int i = ; i < item.DropDownItems.Count; i++)
{
item.DropDownItems[i].Text = GetLanguage(item.DropDownItems[i].Text);
}
}
else
{
item.Text = Strings.StrConv(item.Text, VbStrConv.SimplifiedChinese, );
for (int i = ; i < item.DropDownItems.Count; i++)
{
item.DropDownItems[i].Text = GetLanguage(item.DropDownItems[i].Text);
}
}
}
} //设置工具栏
ToolStrip ts = con as ToolStrip;
if (ts != null)
{
for (int i = ; i < ts.Items.Count; i++)
{
ts.Items[i].Text = GetLanguage(ts.Items[i].Text);
}
} //设置数据表格
DataGridView dgv = con as DataGridView;
if (dgv != null)
{
for (int i = ; i < dgv.Columns.Count; i++)
{
dgv.Columns[i].HeaderText = GetLanguage(dgv.Columns[i].HeaderText);
}
} //设置选项卡
TabControl tc = con as TabControl;
if (tc != null)
{
tc.Text = GetLanguage(tc.Text); for (int i = ; i < tc.TabPages.Count; i++)
{
tc.TabPages[i].Text = GetLanguage(tc.TabPages[i].Text); foreach (Control c in tc.TabPages[i].Controls)
{
SetLanguage(c);
}
}
} //设置ListView
ListView lv = con as ListView;
if (lv != null)
{
for (int i = ; i < lv.Columns.Count; i++)
{
lv.Columns[i].Text = GetLanguage(lv.Columns[i].Text);
}
} //设置分组框
GroupBox gb = con as GroupBox;
if (gb != null)
{
foreach (Control control in gb.Controls)
{
SetLanguage(control);
}
}
} //获取当前语言下的文本
private static string GetLanguage(string text)
{
return Strings.StrConv(text,
StaticInfo.Language.ToUpper() == "CN"
? VbStrConv.SimplifiedChinese
: VbStrConv.TraditionalChinese, );
} #endregion

多语言切换代码

C#窗体多语言切换(简繁)的更多相关文章

  1. js实现中文简繁切换效果

    html代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www ...

  2. Android app应用多语言切换功能实现

    最近在做一个多语言切换的功能,类似于微信的语言切换,搜了下资料基本上都是以下这种: 1. 实现的效果 和微信类似,在设置界面打开切换语言的界面,选择语言后重启 HomeActivity,语言切换完成, ...

  3. js搞定网页的简繁转换

    对网页进行简繁字体转换的方法一般有两种:一是使用<简繁通>这样的专业软件,另外一种是制作两套版本的网页.显然,这两种方法都较为麻烦,而且专业软件一般不能用于免费的空间.笔者在这里给大家提供 ...

  4. iOS 语言切换、本地化,国际化

    什么是本地化处理? 本地化处理就是我们的应用程序有可能发布到世界的很多国家去,因为每个国家应用的语言是不一样的,所以我们要把我们的应用程序的语言要进行本地化处理一下. 本地化处理需要处理那些文件? ( ...

  5. QT实现多语言切换

    功能需求: 网盘客户端要能够实现多国语言的切换,第一版要支持中.英文的切换.在实现过程中感觉QT对多国语言的支持还是很不错的,制作多语言包很方便,切换的逻辑也很简单.下面就来看一下QT中如何制作多语言 ...

  6. C# winForm资源文件实现多语言切换

    这是我目前看到过最简单的多语言切换了 操作步驟 介面上的多語 Step1.將表單的Localizable屬性設為True Step2.切換表單的Language屬性為欲使用的語系 設完後會在分頁標籤上 ...

  7. HanLP极致简繁转换详细讲解

    HanLP极致简繁转换详细讲解 作者: hankcs(大快高级研究员 hanlp项目负责人) 谈起简繁转换,许多人以为是小意思,按字转换就行了.事实上,汉语历史悠久,地域复杂,发展至今在字符级别存在“ ...

  8. [原创]使用OPENCC库进行简繁转换(C++代码)

    最近公司有一款游戏产品,字库存在问题,希望全自动进行简繁同屏自动转换的行为,减少工作量. 所以自己使用了WINDOWS自带的一些转换函数,但发现大量字出现异常,无法转换(测试iconv也发现无法转换) ...

  9. Winform窗体改变语言类型的方式

    Winform改变语言类型比较复杂,需要根据不同语言应用语言资源.而软件在进行语言切换时,需要将当前的UI文化线程引用对应的语言类型.常用的有三种方式,此处使用两种,对比发现其中的优缺点: /// & ...

随机推荐

  1. Vue中comoputed中的数据绑定

    Vue中的数据实现响应式绑定是在初始化的时候利用definePrototype的定义set和get过滤器,在进行组件模板编译时实现water的监听搜集依赖项,当数据发生变化时在set中通过调用dep. ...

  2. 在服务器上用Fiddler抓取HTTPS流量

    转自:http://yoursunny.com/t/2011/FiddlerHTTPS/在服务器上用Fiddler抓取HTTPS流量 阳光男孩 发表于2011-03-19 开发互联网应用的过程中,常常 ...

  3. struts2.1.6教程一、准备工作及实例

    1.解压struts-2.1.6-all.zip apps目录:struts2自带的例子程序 docs目录:官方文档. lib 目录:存放所有jar文件. Src 目录:源文%件存放地 2.六个基本包 ...

  4. JVM垃圾收集算法

    JVM垃圾收集 1. 判断对象是否存活 引用计数算法 对象添加一个引用计数器,每个地方引用它,计数器值加+1:当引用失效,计算器值减1:任何时刻计数器为0的对象不可能被使用.引用计数算法实现简单,高效 ...

  5. 在Eclipse IDE使用Gradle构建应用程序

    文 by / 林本托 Tips 做一个终身学习的人. 1. 下载和配置Gradle Gradle Inc.是Gradle框架开发的公司,为Eclipse IDE提供了Gradle工具的支持. 此工具可 ...

  6. Hibernate与Jpa的关系(1)

    [转自:http://freewind.me/blog/20111129/588.html ] 我知道Jpa是一种规范,而Hibernate是它的一种实现.除了Hibernate,还有EclipseL ...

  7. ElasticSearch的Marvel更新license

    Marvel安装的时候需要申请一个license,否则只有30天的使用时间,到期后最多保存7天的监控数据,为了造成不必要的监控数据丢失,建议安装的同时注册一个lincense,方法如下: 1.     ...

  8. Kotlin入门第三课:数据类型

    前文链接: Kotlin学习第一课:从对比Java开始 Kotlin入门第二课:集合操作 初次尝试用Kotlin实现Android项目 Kotlin的数据类型与Java类似,因此这篇文章主要看Kotl ...

  9. C语言之循环结构

    程序结构: 顺序结构 条件结构(分支结构) if结构,if-else结构 ,多重if分支结构,switch结构 循环结构:做重复的事情 while循环,do..while循环和for循环. 写循环结构 ...

  10. 微信小程序 获取OpenId

    微信小程序 官方API:https://mp.weixin.qq.com/debug/wxadoc/dev/api/ 首先 以下代码是 页面加载请求用户 是否同意授权 同意之后 用code 访问 微信 ...