• 【winfrom-多语言】实现多语言切换:使用资源文件


    使用资源文件实现多语言切换。

    1. 新建一个Form,名为FrmMain。

      在界面添加一个MenuStrip和一个Button。

      并设置好控件的文本和位置。(Language=(Default)

          

    2.   设置窗体FrmMain属性 :Localizable=true  ,  Languange=英语

        并更改控件文本。

          这时VS自动生成FrmMain.en.resx文件。

                 

     3.切换语言事件代码

            private void 中文ToolStripMenuItem_Click(object sender, EventArgs e)
            {
                //更改当前线程的 CultureInfo
                //zh-CN 为中文,更多的关于 Culture 的字符串请查 MSDN
                Thread.CurrentThread.CurrentUICulture = CultureInfo.GetCultureInfo("zh-CN");
                //对当前窗体应用更改后的资源
                ApplyResource();
            }
    
            private void 英文ToolStripMenuItem_Click(object sender, EventArgs e)
            {
                //更改当前线程的 CultureInfo
                //en 为英文,更多的关于 Culture 的字符串请查 MSDN
                Thread.CurrentThread.CurrentUICulture = CultureInfo.GetCultureInfo("en");
                //对当前窗体应用更改后的资源
                ApplyResource();
            }
    
    
            /// <summary>
            /// 应用资源
            /// ApplyResources 的第一个参数为要设置的控件
            ///                  第二个参数为在资源文件中的ID,默认为控件的名称
            /// </summary>
            private void ApplyResource()
            {
                System.ComponentModel.ComponentResourceManager res = new ComponentResourceManager(typeof(FrmMain));
                foreach (Control ctl in Controls)
                {
                    res.ApplyResources(ctl, ctl.Name);
                }
    
                //菜单
                foreach (ToolStripMenuItem item in this.menuStrip1.Items)
                {
                    res.ApplyResources(item, item.Name);
                    foreach (ToolStripMenuItem subItem in item.DropDownItems)
                    {
                        res.ApplyResources(subItem, subItem.Name);
                    }
                }
    
                //Caption
                res.ApplyResources(this, "$this");
            }
  • 相关阅读:
    红黑树深入剖析及Java实现
    Innodb中的事务隔离级别和锁的关系
    从实际案例聊聊Java应用的GC优化
    Java HotSpot VM Options 参数设置
    jvm 字节码查看
    JDK8-废弃永久代(PermGen)迎来元空间(Metaspace)
    jsp 预编译
    MySQL中有关TIMESTAMP和DATETIME的总结
    MySQL 索引及优化实战
    spring boot 配置https 报这个错误:java.lang.IllegalArgumentException: Private key must be accompanied by certificate chain
  • 原文地址:https://www.cnblogs.com/Sukie-s-home/p/6737351.html
Copyright © 2020-2023  润新知