C#窗體多語言切換(簡繁)


多窗體最好繼承一個父窗體,在父窗體Load事件中執行此方法

添加引用 using Microsoft.VisualBasic;

 

  1         #region 語言切換
  2         /// <summary>
  3         /// 語言切換
  4         /// </summary>
  5         public static void ChangeLanguage(Form f)
  6         {
  7             if (!StaticInfo.ChangeLanguage) return;
  8 
  9             //設置窗體標題
 10             f.Text = GetLanguage(f.Text);
 11 
 12             //遍歷Form上的所有控件
 13             foreach (Control control in f.Controls)
 14             {
 15                 if (control is Panel || control is GroupBox)
 16                 {
 17                     foreach (Control con in control.Controls)
 18                     {
 19                         SetLanguage(con);
 20                     }
 21                 }
 22                 else
 23                 {
 24                     SetLanguage(control);
 25                 }
 26             }
 27         }
 28 
 29         private static void SetLanguage(Control con)
 30         {
 31             //設置按鈕
 32             Button btn = con as Button;
 33             if (btn != null)
 34             {
 35                 btn.Text = GetLanguage(btn.Text);
 36             }
 37             
 38             //設置文本標簽
 39             Label lb = con as Label;
 40             if (lb != null)
 41             {
 42                 lb.Text = GetLanguage(lb.Text);
 43             }
 44             
 45             //設置復選框
 46             CheckBox cb = con as CheckBox;
 47             if (cb != null)
 48             {
 49                 cb.Text = GetLanguage(cb.Text);
 50             }
 51             
 52             //設置菜單欄
 53             MenuStrip ms = con as MenuStrip;
 54             if (ms != null)
 55             {
 56                 foreach (ToolStripMenuItem item in ms.Items)
 57                 {
 58                     if (StaticInfo.Language.ToUpper() == "CN")
 59                     {
 60                         item.Text = Strings.StrConv(item.Text, VbStrConv.TraditionalChinese, 1);
 61                         for (int i = 0; i < item.DropDownItems.Count; i++)
 62                         {
 63                             item.DropDownItems[i].Text = GetLanguage(item.DropDownItems[i].Text);
 64                         }
 65                     }
 66                     else
 67                     {
 68                         item.Text = Strings.StrConv(item.Text, VbStrConv.SimplifiedChinese, 1);
 69                         for (int i = 0; i < item.DropDownItems.Count; i++)
 70                         {
 71                             item.DropDownItems[i].Text = GetLanguage(item.DropDownItems[i].Text);
 72                         }
 73                     }
 74                 }
 75             }
 76 
 77             //設置工具欄
 78             ToolStrip ts = con as ToolStrip;
 79             if (ts != null)
 80             {
 81                 for (int i = 0; i < ts.Items.Count; i++)
 82                 {
 83                     ts.Items[i].Text = GetLanguage(ts.Items[i].Text);
 84                 }
 85             }
 86 
 87             //設置數據表格
 88             DataGridView dgv = con as DataGridView;
 89             if (dgv != null)
 90             {
 91                 for (int i = 0; i < dgv.Columns.Count; i++)
 92                 {
 93                     dgv.Columns[i].HeaderText = GetLanguage(dgv.Columns[i].HeaderText);
 94                 }
 95             }
 96 
 97             //設置選項卡
 98             TabControl tc = con as TabControl;
 99             if (tc != null)
100             {
101                 tc.Text = GetLanguage(tc.Text);
102 
103                 for (int i = 0; i < tc.TabPages.Count; i++)
104                 {
105                     tc.TabPages[i].Text = GetLanguage(tc.TabPages[i].Text);
106 
107                     foreach (Control c in tc.TabPages[i].Controls)
108                     {
109                         SetLanguage(c);
110                     }
111                 }
112             }
113 
114             //設置ListView
115             ListView lv = con as ListView;
116             if (lv != null)
117             {
118                 for (int i = 0; i < lv.Columns.Count; i++)
119                 {
120                     lv.Columns[i].Text = GetLanguage(lv.Columns[i].Text);
121                 }
122             }
123 
124             //設置分組框
125             GroupBox gb = con as GroupBox;
126             if (gb != null)
127             {
128                 foreach (Control control in gb.Controls)
129                 {
130                     SetLanguage(control);
131                 }
132             }
133         }
134 
135         //獲取當前語言下的文本
136         private static string GetLanguage(string text)
137         {
138          return   Strings.StrConv(text,
139                            StaticInfo.Language.ToUpper() == "CN"
140                                ? VbStrConv.SimplifiedChinese
141                                : VbStrConv.TraditionalChinese, 1);
142         }
143 
144         #endregion
多語言切換代碼

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM