WinForm界面程序 多语言切换[.Net 6.0]

这篇具有很好参考价值的文章主要介绍了WinForm界面程序 多语言切换[.Net 6.0]。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

创建窗体

开发环境:VS2022 社区版 中文界面 .Net 6.0 WinForm界面程序

  1. 创建窗体,并添加几个按钮;添加切换语言的RadioButton;
  2. 修改窗体的Localizable属性为True
  3. 修改窗体的Language属性为’英语(美国)',修改按钮文本
  4. 编译生成工程
  5. 检查解决方案资源管理器的Form1.cs下面是否生成Form1.en-US.resx文件

注意事项

  1. 建议不要手动修改*.resx文件,特别是名称栏
  2. 修改语言,生成项目后,关闭窗体设计器再次打开才会显示不同语言版本的窗体设计器

效果

WinForm界面程序 多语言切换[.Net 6.0]

关键代码

Radio按钮选择事件及封装的语言管理类

public partial class Form1 : Form
{
    private void ra_ZH_CheckedChanged(object sender, EventArgs e)
    {
        LanguageManager.ChangeLanguage(this, LanguageManager.LangKeys.zh_CN);
    }

    private void ra_EN_CheckedChanged(object sender, EventArgs e)
    {
        LanguageManager.ChangeLanguage(this, LanguageManager.LangKeys.en_US);
    }
}

/// <summary>
/// WinForm本地化语言管理
/// </summary>
public static class LanguageManager
{
    /// <summary>
    /// 常用语言
    /// </summary>
    public static class LangKeys
    {
        public const string zh_CN = "zh-CN";
        public const string zh_TW = "zh-TW";
        public const string en_US = "en-US";
    }

    private static void ApplyResources(ComponentResourceManager resources, Control root, string Name)
    {
        foreach (var item in root.Controls)
        {
            Control? ctl = item as Control;
            if (ctl != null)
            {
                ApplyResources(resources, ctl, ctl.Name);
            }
        }
        resources.ApplyResources(root, Name);
    }
    /// <summary>
    /// 改变窗体语言
    /// </summary>
    /// <param name="root">窗体</param>
    /// <param name="LanguageKey">语言Key带后缀的(如:zh-CN)</param>
    public static void ChangeLanguage(Form root, string LanguageKey)
    {
        Thread.CurrentThread.CurrentUICulture = new CultureInfo(LanguageKey);
        ComponentResourceManager resources = new ComponentResourceManager(root.GetType());
        ApplyResources(resources, root, root.Name);
    }
}

截图

窗体属性:
WinForm界面程序 多语言切换[.Net 6.0]

资源管理器不同语言文件:Form1.resx为默认语言中文
WinForm界面程序 多语言切换[.Net 6.0]
不同语言的窗体设计器:
WinForm界面程序 多语言切换[.Net 6.0]
WinForm界面程序 多语言切换[.Net 6.0]
WinForm界面程序 多语言切换[.Net 6.0]
WinForm界面程序 多语言切换[.Net 6.0]文章来源地址https://www.toymoban.com/news/detail-459504.html

优缺点

  1. LanguageManager使用递归查找控件;自动切换语言不需要每增加一个控件加一句代码;
  2. resx文件的名称的资源名称不能手动修改
  3. 有多个语言版本时建议先复制一个非默认的resx文件;复制一份并修改文件名称

到了这里,关于WinForm界面程序 多语言切换[.Net 6.0]的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • [C#]vs2022安装后C#创建winform没有.net framework4.8

    问题,我已经在visualstudio安装程序中安装了.net框架4.8的SDK和运行时。 然而,我在visual studio 2022中找不到已安装的框架。 我已经检查了我的VS 2019,它可以很好地定位网络框架4.8,它可以构建我的项目。但VS 2022不能。 我已经重新安装了VS 2022和VS 2019,但VS 2022仍然找不到我的框

    2024年02月07日
    浏览(56)
  • 【C语言学习教程---1】VC++6.0的安装和创建简单C语言工程文件教程

    事物的难度远远低于对事物的恐惧 在学习C语言之前,首先需要安装编译器软件,学习完理论知识及时动手操作是才能印象深刻,切勿纸上谈兵,这里选择安装的是一款比较经典的并且运行相对比较稳定的VC++6.0软件。 把软件资源下载到电脑上并进行解压,下载地址: 链接:

    2024年02月08日
    浏览(51)
  • Visual Studio 2019 切换界面语言为中文

    打开 Visual Studio 2019 选择 右下角 \\\" 继续但无需代码 (Continue without code) \\\" Visual Studio 上方菜单栏: \\\" 工具 (Tools) \\\" → \\\" 选项 (Options) \\\" → \\\" 环境 (Environment) \\\" → \\\" 区域设置 (International Settings) \\\" 此时,右侧 \\\" 语言 (Language) \\\" 下拉框选中 \\\" 中文(简体) \\\" 后点击 \\\" 确定 (OK) \\\"。会弹出一

    2024年02月09日
    浏览(47)
  • C#桌面程序 winform 集成内置WebApi C# 创建HTTP Web API服务,winform项目创建HTTP WEB服务,不使用IIS业务 C#桌面程序WebApi C#winform集

     在维护旧的项目时,有时需要提供APP连接的需求,就要提供HTTP服务,winform项目就要提供HTTP服务,就不用再去写个c# web的IIS相关的业务了,简化项目的复杂度。只需要简单化实例就可以实现提供HTTP服务

    2024年02月08日
    浏览(52)
  • 手把手教会 VS2022 设计 Winform 高DPI兼容程序 (net461 net6.0 双出)

    C# Winform高DPI字体模糊. 高DPI下(缩放100%), UI设计器一直提示缩放到100%, 如果不重启到100%,设计的控件会乱飞. 新建.Net Windows窗体应用 (Winform)工程 选择.Net6.0 将窗体尺寸定为 1000 x 1000 , 用于后面检测缩放是否正确 添加一个按钮 , 尺寸定为 150 x 50 添加一个图片框 , 尺寸定为 300 x

    2024年02月07日
    浏览(43)
  • Inno Setup打包winform、wpf程序可判断VC++和.net环境

    官网链接: link 1、新建打包文件 2、填写 应用名称、版本号、公司名称、公司官网 3、选择安装路径 Custom是指定默认路径、Program Files folder是默认C盘根目录 4、选择程序启动exe文件 以及Addfolder选择全部运行文件 5、选择安装前显示文字 、安装中、安装后 这里我只选择了安装前

    2024年02月16日
    浏览(52)
  • .Net Framework 4.6.1+版本的Winform程序开启Web服务,支持Http webapi

    在很久以前为了满足需求,已经开发了一款winform程序,并且是4.6.1版本的,如今为了和第三方对接,需要在这个winform上提供WebAPI的接口。因为第三方的程序是一份没有源码的程序。 网上有很多自写web服务的功能,个人觉得过于麻烦,而且还要考虑一些路由规则什么的,太难

    2024年02月14日
    浏览(42)
  • C#配置文件多语言切换

    以下是一个简单的解决方案,包括代码和注释。这个方案使用了资源文件和配置文件来实现多语言切换,同时将代码封装成了一个类,方便调用。 首先,我们需要创建三个资源文件,分别为: - Resources.resx:中文资源文件 - Resources.en.resx:英文资源文件 - Resources.vi.resx:越南语

    2024年02月09日
    浏览(42)
  • 运行winform程序提示:You must install .NET Desktop Runtime 6.0.1(x64)

    需要将一个winform程序打包发送给客户运行。一开始是将debug下所有文件发送给客户,然后客户点击exe文件运行时提示没有安装.NET Desktop Runtime 6.0.1。然后又尝试利用Visual Studio的插件Microsoft Visual Studio Installer Projects将其打包成setup文件,客户安装后运行仍然提示没有安装.NET De

    2024年02月12日
    浏览(32)
  • PyQt5使用QtDesigner实现多界面切换程序

    一、首先要安装QtDesigner         具体安装步骤在此不做赘述,若是有需要的小伙伴可以去找一找教程。 二、简单介绍 QtDesigner         各位伙伴安装完成打开之后的界面类似如下图(Windows版本),图片中已经对各个区域及其作用进行简单介绍,具体用法会在下面继续讲解。

    2024年02月02日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包