`
chhff
  • 浏览: 28676 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

Winform 国际化

阅读更多
using System;
using System.Collections.Generic;
using System.Text;
using System.Reflection;
using System.Resources;
using System.Threading;
using System.Globalization;
using System.Windows.Forms;

namespace TestLanguage
{
    public class SelectLanguage
    {

        public SelectLanguage()
        {
        }

        private string formName;

        public ResourceManager GetCurrentCulture()
        {
            //Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("zh-CN");
            ResourceManager rm = new ResourceManager("TestLanguage.Resource1", Assembly.GetExecutingAssembly());
            return rm;
        }

        public System.Drawing.Bitmap GetImage(string strObjectId)
        {
            ResourceManager rm = GetCurrentCulture();
            object obj = rm.GetObject(strObjectId);
            return (System.Drawing.Bitmap)obj;
        }

        public string getMsg(string strId)
        {
            ResourceManager rm = GetCurrentCulture();
            CultureInfo ci = Thread.CurrentThread.CurrentCulture;
            return rm.GetString(strId, ci);
        }

        public void SetLanguage(System.Windows.Forms.Control control)
        {
            //MessageBox.Show(control.GetType().BaseType.Name);
            if (control.GetType().BaseType.Name == "Form")
            {
                formName = control.Name;
                control.Text = getMsg(control.Name);
            }

            for (int i = 0; i < control.Controls.Count; i++)
            {
                //MessageBox.Show(control.Controls[i].GetType().Name + "-" + control.Controls[i].Name);
                switch (control.Controls[i].GetType().Name)
                {
                    case "Label":
                    case "Button":
                    case "CheckBox":
                    case "LinkLabel":
                        control.Controls[i].Text = getMsg(formName + control.Controls[i].Name);
                        break;
                    case "Panel":
                        SetLanguage(control.Controls[i]);
                        break;
                    case "TabControl":
                        TabControl tbc = (TabControl)control.Controls[i];
                        for (int j = 0; j < tbc.TabCount; j++)
                        {
                            tbc.TabPages[j].Text = getMsg(formName + tbc.TabPages[j].Name);
                            SetLanguage(tbc.TabPages[j]);
                        }
                        break;
                    default:
                        break;
                }
            }
        }
    }
}
分享到:
评论

相关推荐

    C# WINFORM 国际化

    标题 "C# WinForm 国际化" 涉及的是在C#编程环境中,如何为Windows Forms应用程序实现多语言支持,即国际化(Internationalization)和本地化(Localization)。这通常是为了让软件能够适应不同国家和地区用户的语言...

    Winform国际化.zip

    当我们谈论“Winform国际化”时,我们实际上是指使Winform应用程序能够适应不同语言和文化背景的过程。这涉及到对用户界面(UI)元素,如按钮文本、菜单项、对话框消息等进行多语言支持。在本文中,我们将深入探讨...

    winform 国际化 Demo

    下面,我们将深入探讨Winform国际化的几个关键步骤: 1. **使用资源文件**:在Winform应用中,所有的字符串、图标和其他可本地化的元素都应该存储在资源文件中,而不是硬编码在代码中。这通常包括.resx文件,其中...

    winform国际化

    WinForm国际化是Windows桌面应用程序开发中的一个重要概念,它允许软件适应不同国家和地区的语言环境,为用户提供多语言的支持。在本文中,我们将深入探讨WinForm应用程序如何实现国际化,并通过具体的代码示例展示...

    C# winform 国际化

    本文将深入探讨如何实现C# WinForm应用的国际化,包括菜单国际化和资源国际化。 首先,我们需要理解国际化的基本概念。国际化是指设计和实现软件的方式,使得它可以容易地适应不同的语言和文化,而无需进行大规模的...

    Winform国际化Demo

    "Winform国际化Demo" 就是一个示例,它展示了如何将Winform应用转化为支持多种语言的平台。 在Winform应用中实现国际化,主要是通过资源文件(Resource Files)来完成的。资源文件存储了应用程序中所有的文本、图标...

    上位机Winform实现多语言国际化

    本话题聚焦于“上位机Winform实现多语言国际化”,这涉及到Windows Forms应用程序的开发,以及如何让其支持多种语言,以满足全球用户的使用需求。同时,描述中提到的“与西门子PLC通讯的代码”意味着我们还会讨论...

    winform程序国际化

    WinForm程序国际化是一种技术,使得同一个应用程序可以根据用户的地区设置显示不同的语言内容,从而提供更友好的用户体验。在本文中,我们将深入探讨WinForm程序国际化的概念、实现方法以及相关工具和资源。 首先,...

    C# WinForm国际化实现的简单方法

    今天,这里要讲的就是,在利用C#进行WinForm开发时,国际化是怎么实现的。鉴于时间及篇幅关系,这里仅仅介绍一种简单的国际化实现方法,可能这里提到的方法已经有非常多人提到过,但笔者还是不厌其烦地介绍一下。要...

    资源文件在国际化中的运用(WinForm)

    总的来说,资源文件在WinForm应用中的运用是实现国际化和本地化的核心技术,它使开发者能够轻松地为不同地区和语言的用户提供定制的用户体验。通过合理管理和使用资源文件,可以大大提高应用的可维护性和适应性。在...

    winform 初始化器源码

    10. **国际化和本地化**:对于多语言支持的应用,初始化器可能包括根据用户设置加载相应语言资源的逻辑。 通过研究WinForm初始化器源码,开发者可以学习到如何有效地构建和优化应用程序的启动流程,提高应用的性能...

    asp.net多语言国际化与winform多语言国际化心得

    总结,ASP.NET和WinForm的多语言国际化都是通过资源文件和文化信息实现的。虽然实现方式有所不同,但核心思想都是根据用户的文化环境提供相应的界面和内容。理解和掌握这些技术,能帮助开发者构建出更加全球化、易于...

    winform 实现 国际化 多语言自由切换

    winform 实现 国际化 多语言自由切换 样例以 中英文为例 测试登录页 手动选择语言切换过后 存在记忆功能 下次再次进入系统 默认上次选择的语言进入

    winform窗体可视化设计工具

    9. **国际化和本地化**:对于需要多语言支持的应用,设计工具提供了资源文件和本地化支持,方便在不同地区部署应用程序。 10. **代码生成和重构**:除了可视化设计,工具也会自动生成对应的后台代码,同时提供代码...

    c# winform实例大全(198个Csharp WinForm实例源码)

    11. **国际化与本地化**:了解如何使WinForm应用支持多种语言,提供全球化体验。 通过这些实例,开发者可以深入学习C#语言特性、WinForm控件的用法以及.NET Framework的相关API。每个实例都提供了完整的源码,方便...

    DesignerHosting winform设计器

    7. **国际化支持**:可能提供对多语言界面的支持,方便开发全球化的应用。 总的来说,"DesignerHosting WinForm设计器"是面向WinForm开发者的一款高效、灵活的工具,通过其提供的高级特性,开发者可以更轻松地创建...

    WInform API开发详解

    11. **国际化与本地化**:介绍如何使应用程序支持多种语言,适应全球用户。 12. **调试与优化**:提供调试技巧,以及如何使用性能分析工具优化WinForm应用的性能。 13. **案例研究**:通过实际的项目案例,演示...

Global site tag (gtag.js) - Google Analytics