none
winform窗体界面如何做中英文切换? RRS feed

  • 问题

  • 老师你好!

    我想做几个winform窗体界面,但界面上控件显示文字想做成中文和英文可以相互切换的(比如单击一个按钮显示中文,再按一次显示英文),不知怎么实现?谢谢!


    2019年8月16日 14:26

答案

  • Hi,

    VS 提供了一种简单的方式来为应用设置多种语言——resx文件。下面演示具体的操作步骤。

    1.首先新建 Winform 项目,向其添加控件,并命名

    2.将 Form1 的 Localizable 属性设为 true, 设置该属性后,.net 将根据不同的语言,为应用程序生成不同的资源文件(resx文件)

    3.将 Form1 的 Language 属性修改为想要设置的语言

    4.修改每个控件的名称,在完成步骤3后便会自动创建文件“Form1.zh-CN.resx”, 也可以在文件中修改名称

    5.如需提供其他语言,重复步骤3、4

    6.编写代码获取resx文件

        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (comboBox1.Text == "中文-简体")
            {
                Thread.CurrentThread.CurrentUICulture = CultureInfo.GetCultureInfo("zh-CN");
                ApplyResource();
            }
            if (comboBox1.Text == "English-US")
            {
                Thread.CurrentThread.CurrentUICulture = CultureInfo.GetCultureInfo("en-US");
                ApplyResource();
            }
        }
    
        private void ApplyResource()
        {
            System.ComponentModel.ComponentResourceManager res = new ComponentResourceManager(typeof(Form1));
            foreach (Control ctl in Controls)
            {
    
                res.ApplyResources(ctl, ctl.Name);
            }
            this.ResumeLayout(false);
            this.PerformLayout();
            res.ApplyResources(this, "$this");
        }

    测试结果:

    Regards,

    Kyle


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    2019年8月20日 2:52
    版主