多窗体最好继承一个父窗体,在父窗体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. 【JAVAWEB学习笔记】07_BootStrap、Viewport介绍

    今天主要学习了BootStrap,viewport的介绍和最后对网站进行了重构 今天晨读单词: Compatible:兼容性 viewport:视口 device:设备 initial:初始化(缩写i ...

  2. linux系统管理--查看进程

    关于进程的查看,大家都不会陌生 ,主要是ps和pstree命令. ps  aux    查看系统中所有进程,使用BSD操作系统格式.(注意:不是ps -aux) 执行结果 USER :该进程是由哪个用 ...

  3. DB太大?一键帮你收缩所有DB文件大小(Shrink Files for All Databases in SQL Server)

    本文介绍一个简单的SQL脚本,实现收缩整个Microsoft SQL Server实例所有非系统DB文件大小的功能. 作为一个与SQL天天打交道的程序猿,经常会遇到DB文件太大,把空间占满的情况: 而 ...

  4. 用app.net Core搞点多国语言网站

    Asp.net Core 中文文档很少,你可以看英文的,不过英文的也是说的有点乱.这篇文章是干货. 1. 配置好你的WebApplication,使他可以支持国际化语言,修改文档Startup.cs ...

  5. 6. Java 加解密技术系列之 3DES

    Java 加解密技术系列之 3DES 序 背景 概念 原理 代码实现 结束语 序 上一篇文章讲的是对称加密算法 — — DES,这篇文章打算在 DES 的基础上,继续多讲一点,也就是 3 重 DES ...

  6. 利用EF ORM Mysql实体运行程序出错解决方案

    程序环境:VS2013 + mysql (server 5.7 + connector net 6.9.9 + for visual studio 1.2.6) + entity framework ...

  7. LVM学习

    LVM Logical Volume Manager Volume management creates a layer of abstraction over physical storage, a ...

  8. 每天一道Java题[10]

    题目 阐述创建线程最常用的两种方法及其对比. 解答 方法一:继承Thread类实现 步骤: 创建Thread类的子类,如MyThread. 重写Thread类的run()方法. 实例化MyThread ...

  9. Your data vis “Spidey-sense” & the need for a robust “utility belt”

    @theboysmithy did a great piece on coming up with an alternate view for a timeline for an FT piece. ...

  10. nodejs 开启debug选项问题

    我的机器上设置debug选项是,debug与(等号)=之间不可以有空格,否则设置无效 如下: set DEBUG = * 无打印 set DEBUG=*正常打印