多窗体最好继承一个父窗体,在父窗体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, 1);
				for (int i = 0; i < item.DropDownItems.Count; i++)
				{
					item.DropDownItems[i].Text = GetLanguage(item.DropDownItems[i].Text);
				}
			}
			else
			{
				item.Text = Strings.StrConv(item.Text, VbStrConv.SimplifiedChinese, 1);
				for (int i = 0; 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 = 0; 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 = 0; 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 = 0; 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 = 0; 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, 1);
}

#endregion
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144