多窗体最好继承一个父窗体,在父窗体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动态加载图片,取消格式验证

    vue 一. 动态加载图片 (以vue模板为例) app.vue 代码如下: <template> <div id="app"> <img :src= ...

  2. MyBatis之简单了解Plugin

    MyBatis的Configuration配置中有一个Plugin配置,根据其名可以解释为"插件",这个插件实质可以理解为"拦截器"."拦截器&quo ...

  3. python 使用 'python -m pip install --upgrade pip'提示PermissionError: [WinError 5] 拒绝访问

    执行pip install --upgrade pip 提示"PermissionError: [WinError 5] 拒绝访问",如下图,由于更新的用户权限不够,换成管理员运行 ...

  4. Gitlab使用Webhook实现Push代码自动部署

    1.Jenkins 安装完成以后,首先我们在Jenkins中需要安装一下,Gitlab Hook Plugin 插件: 2.插件安装完成我们创建任务,在任务重构建触发器下获取回调URL: 注意: 注意 ...

  5. 多参数请求 C# webApi

    今天在写项目然后发现了一个 webapi 的一个小功能  可能有些人 不知道 所以顺手分享一下  希望大牛不要喷... webapi 创建的时候 的 get 请求 默认模板是俩个 一个不带参数的Get ...

  6. HTML5 进阶系列:canvas 动态图表

    前言 canvas 强大的功能让它成为了 HTML5 中非常重要的部分,至于它是什么,这里就不需要我多作介绍了.而可视化图表,则是 canvas 强大功能的表现之一. 现在已经有了很多成熟的图表插件都 ...

  7. 我来说说XML文件中的xmlns、xmlns:xsi和xsi:schemaLocation的具体含义

      文章摘自:https://yq.aliyun.com/articles/40353               http://www.cnblogs.com/zhao1949/p/5652167. ...

  8. struts2.1.6教程四_2、ActionContext 、ValueStack 、Stack Context

    ActionContext 一次Action调用都会创建一个ActionContext 调用:ActionContext context = ActionContext.getContext() Va ...

  9. spring-线程池(2)

    继承:http://www.cnblogs.com/crazylqy/p/4220743.html spring设置容器启动时运行线程类(可循环执行) 修改以下两文件, 1.spring设置容器启动时 ...

  10. 1.Java第一课:初识java

    今天也算是正式地开始学习Java了,一天学的不是太多,旨在入门了解Java.还好现在学的都是基础,也能赶得上进度,希望以后能一直保持这种精神状态坚持学下去.下面就简单来说说今天所学的内容吧. 1计算机 ...