使用Visual Studio实现WinForm多语言版本实例

Visual Studio可以很好的支持WinForm多语言界面的实现。

首先使用Visual Studio创建一个WinForm项目,在窗体上放上所需的控件,调好位置,并使用一种语言(例如简体中文)编辑好窗体和控件的Text等属性。

 

然后点击窗体,设置窗体的Localizable属性为True。 

接着把窗体的Language属性选择为所需其它的语言,例如英语。接着用所选语言编辑窗体和控件的Text等属性,调整好位置。

 

然后为项目添加一个配置文件app.config,在配置文件中增加文化条目SosoftCulture:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <appSettings>
    <add key="SosoftKey" value="sosoftValue" />
    <add key="SosoftURL" value="sosoft.cnblogs.com" />
    <add key="SosoftProject" value="sosoft.codeplex.com" />
    <add key="SosoftCulture" value="en"  />
  </appSettings>
</configuration>

这里SosoftCulture的值“en”表示英语,如果要设为中文可以改为“zh”。

接着可以在启动程序的时候,读取配置文件的文化设置,把界面显示为相应的语言界面。

例如在窗体的构造函数中,在InitializeComponent();之前,加入SetCulture();

SetCulture()方法具体代码如下:

private void SetCulture()
        {
            m_culture = SosoftConfigHelper.GetAppConfig("SosoftCulture");
            if (string.IsNullOrEmpty(_culture))
                return;
            try
            {
                CultureInfo m_ci = new CultureInfo(m_culture);
                Thread.CurrentThread.CurrentCulture = m_ci;
                Thread.CurrentThread.CurrentUICulture = m_ci;
            }
            catch
            {    }
        }

其中SosoftConfigHelper类是配置文件读写类,需添加到项目中,请参考http://www.cnblogs.com/sosoft/archive/2012/09/26/sosoftconfighelper.html
记得引用命名空间
using System.Globalization;
using System.Threading;

按F5运行,就可以显示所配置语言的界面了。要改变界面只需改变SosoftCulture的配置。

也可以在窗体启动前弹出对话框又用户选择语言,详细请下载源代码。

柔城多语言实例源码下载地址:https://files.cnblogs.com/sosoft/SosoftMultiLanguages.rar

原文地址:https://www.cnblogs.com/sosoft/p/duoyuyan.html