在写一个程序,程序本身要求是多语言的,比如说程序设置英语的时候,那么打开的对话框是英语的,设置是法语,打开的对话框是法语。    我想了一个折衷的办法利用 hook 然后setDlgItemText和setWindowText来修改对话框的标签内容和标题。    现在我已经成功修改了openFileDialog,但是在修改saveFileDialog时出现了问题,保存文件对话框只有取消按钮和文件名那个标签可以修改,标题和其他的标签都不能修改。不知道谁碰到过这种情况没有

解决方案 »

  1.   

    设置Thread.CurrentThread.CurrentUICulture为需要的语言
      

  2.   

    配置资源文件如:Resource1.zh-CN.resx,Resource1.zh-TW.resx,Resource1.en-US.resx。
    public static void SetLang(string lang, Form form, Type formType)
      {
      System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo(lang);
      if (form != null)
      {
      System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(formType);
      resources.ApplyResources(form, "$this");
        
      }
      }
      

  3.   

    尝试了一下 不是很明白 是不是这些resource资源需要自己去找,然后放在项目之中的啊
      

  4.   

    我今天看了一下 原来是saveFileDialog 有些组建没有刷新过,如果切换到别的窗口再切回来就都改好了,不知道大家有什么别的主意不。至于改语言真的不会 能不能请高人写个详细一点的例子,比如在中文机器上打开一个英文版的saveFileDialog
      

  5.   

    我今天看了一下 原来是saveFileDialog 有些组建没有刷新过,如果切换到别的窗口再切回来就都改好了,不知道大家有什么别的主意不。至于改语言真的不会 能不能请高人写个详细一点的例子,比如在中文机器上打开一个英文版的saveFileDialog