使用资源文件实现窗体多国语言版

使用资源文件实现窗体多国语言版本

//定义语言类型,或定义一个枚举类型
public static int LanguageType=1;

public static System.Globalization.CultureInfo currentCulture;

public static void ChoiceLanguage(System.Windows.Forms.Form frm)
  {
   
    System.Resources.ResourceManager rm;
   rm=new System.Resources.ResourceManager("PutPCProject.Resource.Strings",frm.GetType().Assembly);
   if(LanguageType == 0)
   {
    currentCulture=System.Globalization.CultureInfo.CurrentCulture;
    SetForms(frm,rm);
   }
   if(LanguageType == 1)
   {
    currentCulture=new System.Globalization.CultureInfo("en-US");
    SetForms(frm,rm);
   }
  }
private static void SetForms(System.Windows.Forms.Form frm,System.Resources.ResourceManager rm)
  {
   SetControl(frm,rm);
  }
  private static void SetControl(Control control,System.Resources.ResourceManager rm)
  {
   string values=null;
   values=rm.GetString(control.Name,currentCulture);
   if(values != null)
   {
    control.Text=values;
   }
   if(control.Controls.Count > 0)
   {
    for(int i=0;i    {
     SetControl(control.Controls[i],rm);
    }
   }
  }

在窗体登陆事件中调用ChoiceLanguage方法
ChoiceLanguage(this);
 

你可能感兴趣的:(语言,null,string,.net)