• 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
    多语言切换代码
  • 相关阅读:
    Pikachu-RCE【远程代码、命令执行漏洞】
    Pikachu-SQL注入
    Pikachu-CSRF【跨站请求伪造】
    DWVA-xss【跨脚本漏洞】三类
    git 本地修改未提交时切换分支
    windows密码修改后同步修改git认证密码,HTTP Basic: Access denied and fatal Authentication
    git远程仓库回退
    git版本回退
    idea强制更新Maven依赖包
    IDEA多Module项目
  • 原文地址:https://www.cnblogs.com/codeyou/p/4981243.html
Copyright © 2020-2023  润新知