• 用c#创建支持多语言的WinForm应用程序


    实现多语言的方法可能有使用资源文件,或者配置xml两种方法吧。
    没时间研究过多,学习了一下使用资源文件的方法,成功了。


    在.net2.0 中,m$ 为我们提供了一种简单方便的方法, 使用资源文件

    1.新建一个 Winform 应用程序, 新建一 Form ,名为 Form1,添加一个菜单一个按钮。如图

    2. 设置 Form1 的 Localizable 属性为 true, 设置该属性后,.net 将根据不同的语言,为应用程序生成不同的资源文件
    3.设置各个控件的文本(系统默认语言下)
    4.更改 Form1 的 Language 属性为想要支持的另一种语言,此例中我们选用 English
    5.重新设置各个控件的文本
     注:此时.net 将为 Form1 生成另一个资源文件,在本例中名为 Form1.en.resx
    当你需要添加新的控件时,需要切换到default语言。
    6. 如果有其它的语言要设置,请重复第4,第5步
    7.编写代码 (需要消息框多语言支持的话,就用form做消息框吧。同时也做成多语言支持。)

    大气象
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;

    using System.Threading;
    using System.Globalization;

    namespace GlobalResource
    {
        
    public partial class Form1 : Form
        {
            
    public Form1()
            {
                InitializeComponent();
            }

            
    private void button1_Click(object sender, EventArgs e)
            {
                Msg msg 
    = new Msg();
                msg.ShowDialog();
            }

            
    private void 退出ToolStripMenuItem_Click(object sender, EventArgs e)
            {
                Application.Exit();
            }

            
    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(Form1));
                
    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");
            }
        }
    }

     判断操作系统语言的方法: Selenium

    大气象
    private void Form1_Load(object sender, EventArgs e)
    {
        
    //不需要判断操作系统的语言,使用资源文件会自动选择。
        
    //if (System.Globalization.CultureInfo.InstalledUICulture.Name == "zh-CN")
        
    //{
        
    //    Thread.CurrentThread.CurrentUICulture = CultureInfo.GetCultureInfo("zh-CN");
        
    //    //对当前窗体应用更改后的资源
        
    //    ApplyResource();
        
    //}
        
    //else
        
    //{
        
    //    Thread.CurrentThread.CurrentUICulture = CultureInfo.GetCultureInfo("en");
        
    //    //对当前窗体应用更改后的资源
        
    //    ApplyResource();
        
    //}
    }

    源码下载:点击下载

    参考:
    http://www.cnblogs.com/michaelhuwei/archive/2007/06/05/771954.aspx
    http://www.cnblogs.com/robertzml/archive/2009/08/20/1550445.html
    http://topic.csdn.net/u/20081030/00/71d2a66b-19bc-4b28-9f18-2dd038e80e3c.html
    http://topic.csdn.net/u/20081020/16/4440219e-b4a8-41ee-85a3-58ac45870f72.html?seed=1079612622

  • 相关阅读:
    JAVA爬虫实践(实践三:爬虫框架webMagic和csdnBlog爬虫)
    JAVA爬虫实践(实践一:知乎)
    JAVA爬虫实践(实践二:博客园)
    SpringMVC框架学习笔记(5)——数据处理
    SpringMVC框架学习笔记——各种异常、报错解决
    SpringMVC框架学习笔记(1)——HelloWorld
    angularjs springMVC 交互
    存储过程存放数据方式
    存储过程总结
    cssie7.0兼容
  • 原文地址:https://www.cnblogs.com/wwwzzg168/p/4121534.html
Copyright © 2020-2023  润新知