C#如何通过一个按钮实现窗体界面的中英文切换?

2020 - 8 - 17 TAG :

一、窗体的国际化解决方案新建一个WinForm解决方案后,选择主窗体,右击查看属性,找到Localizable属性,将其置为True,然后找到Language属性,选择你需要切换的语言,比如英语(美国)、中文(简体,中国)等。此时根据实际情况设计该Language下的窗体样式及语言。图1 Form的属性设置图2 根据选择的语言,自动生成的资源文件二、使用CultureInfo类实现国际化解决方案CultureInfo 类包含区域性特定的信息,例如语言、国家/地区、日历以及区域性约定。using System;using System.Collections.Generic;using System.Linq;using System.Windows.Forms;namespace LocationForm{ static class Program { /// /// 应用程序的主入口点。 /// [STAThread] static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); //System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("en-US"); System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("zh-CN"); Application.Run(new Form1()); } }}三:实现效果官方参考文献:http://msdn.microsoft.com/zh-cn/library/h6270d0z.aspx另外您可能是需要动态切换语言的吧.接着往下看.在 Visual Studio 的设计视图中,如果在 Properties 窗口中改变了程序的默认界面语言(Language),我们会注意到无论是工程还是窗体对应的 .Designer.cs 文件都会有显著的改变。比如,我们创建一个叫 MyForm 的 form,并且添加一个叫 MyButton 的按钮。在改变窗体 Properties 中的 Language 属性之前, .Designer.cs 代码文件中的 InitializeComponent 方法的内容大致如下:private void InitializeComponent(){this.myButton = new System.Windows.Forms.Button();this.SuspendLayout(); myButton//this.myButton.Location = new System.Drawing.Point(100, 200);this.myButton.Name = "myButton";this.myButton.Size = new System.Drawing.Size(75, 23);this.myButton.TabIndex = 0;this.myButton.Text = "My Button";this.myButton.UseVisualStyleBackColor = true; myForm//this.ClientSize = new System.Drawing.Size(292, 273);this.Controls.Add(this.myButton);this.Name = "MyForm";this.Text = "My Form";this.ResumeLayout(false);}而在改变了窗体 Properties 中的 Language 属性之后,工程中除了默认的 .resx 文件之外,还会自动添加一个 .zh-CHS.resx 文件(假设我们将 Language 改变为 Chinese (Simplified))。另外,.Designer.cs 文件中的 InitializeComponent 方法也会改变成:private void InitializeComponent(){System.ComponentModel.ComponentResourceManager resources= new System.ComponentModel.ComponentResourceManager(typeof(MyForm));this.myButton = new System.Windows.Forms.Button();this.SuspendLayout(); myButton//this.myButton.AccessibleDescription = null;this.myButton.AccessibleName = null;resources.ApplyResources(this.myButton, "myButton");this.myButton.BackgroundImage = null;this.myButton.Font = null;this.myButton.Name = "myButton";this.myButton.UseVisualStyleBackColor = true; myForm//this.AccessibleDescription = null;this.AccessibleName = null;resources.ApplyResources(this, "$this");this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;this.BackgroundImage = null;this.Controls.Add(this.myButton);this.Font = null;this.Icon = null;this.Name = "myForm";this.ResumeLayout(false);}我们注意到改变 Language 属性之后,代码的主要变化有:ComponentResourceManager resources = new ComponentResourceManager(typeof(MyForm));resources.ApplyResources(this.myButton, "myButton");resources.ApplyResources(this, "$this");另外,设置控件属性(比如显示文字 Text,控件大小 Size,显示位置 Location 等)的代码都没有了。也就是说设置控件属性的代码都是由resources.ApplyResource方法来完成的。那么在我们想改变 WinForm 程序的界面显示语言的时候,能不能直接调用 ApplyResources 方法呢?答案是肯定的。为 myButton 添加 Click 事件的事件处理函数:private void myButton_Click(object sender, EventArgs e){int currentLcid = Thread.CurrentThread.CurrentUICulture.LCID;currentLcid = (currentLcid == 2052) ? 1033 : 2052;// Changes the CurrentUICulture property before changing the resources that are loaded for the win-form.Thread.CurrentThread.CurrentUICulture = new CultureInfo(currentLcid);// Reapplies resources.ComponentResourceManager resources = new ComponentResourceManager(typeof(MyForm));resources.ApplyResources(myButton, "myButton");resources.ApplyResources(this, "$this");}

179 人围观 / 0 条评论 ↓快速评论↓

winform按钮切换页面_C#如何通过一个按钮实现窗体界面的中英文切换?相关推荐

  1. 给页面字段中添加一个按钮,点击按钮实现弹窗效果

    页面效果: 点击按钮后弹窗效果: 点击左上角搜索框效果: 页面实现代码 首先配置一个入住房间字段 <field><header>入住房间</header><d ...

  2. java中怎么写一个返回按钮_java – 在表中实现一个按钮,该按钮使用Thymeleaf和Spring Boot从表中返回数据...

    使用Spring Boot和Thymeleaf的tl; dr,当用户单击特定行的第5列中的按钮时,如何在表单中返回表的第1列值? 嗨,您好!长时间听众,第一次来电.对于这个问题,我非常感谢你的帮助. ...

  3. java在表格单元中加入button按钮_java – 在表中实现一个按钮,该按钮使用Th...

    使用Spring Boot和Thymeleaf的tl; dr,当用户单击特定行的第5列中的按钮时,如何在表单中返回表的第1列值? 嗨,您好!长时间听众,第一次来电.对于这个问题,我非常感谢你的帮助. ...

  4. html怎么按钮设置字体大小,更改按一个按钮的HTML字体大小

    嗨,大家好我写了一个简单的应用程序,在web视图中显示一个html文件,该html文件在主包中. 我不知道我怎样才能使HTML文件字体大小大/小由两个按钮 这是我的.m更改按一个按钮的HTML字体大小 ...

  5. 中英文切换_王者荣耀:模拟战奖励一览,新增中英文切换,李白第二套星元来袭...

    王者荣耀体验服在今日凌晨更新后新增了不少功能,比如模拟战加入了精灵机制,以及局内新增语言设置,另外李白继千年之狐后,又有一套皮肤加入"星计划",即李白团战精神皮肤敏锐之力将迎来星元 ...

  6. 在页面里点击一个按钮后出来一个层,可以操作的那么一个层!

    演示:http://www.bl.gov.cn/english/invest_adv.php 这个页面里面你点一下中间那个YOUR QUESTION,出来一个层,可以操作的 <!DOCTYPE ...

  7. 示波器界面的中英文切换

    示波器型号是TDS 2012C,当我们用示波器时,如果可以把所有选项都调成中文状态,会比较省心.这款示波器调成中文状态是在:Utility--------Page 2 of 2(第二页)------- ...

  8. c#Winform代码里中英文切换

    1.Winform窗体中的中英文切换 第一步:Form_123窗体属性中Language为默认情况下,button1按钮属性Text为:按钮: 第二步:Form_123窗体属性中Language设置为 ...

  9. HTML点击页面按钮自动刷新页面,如何在Html单击按钮后单击刷新页面

    我正在用Java编写一个程序,用于在单击页面底部的下一个按钮后从一系列页面中删除源代码.我的代码是目前:如何在Html单击按钮后单击刷新页面 public class Htmlunitscraper ...

最新文章

  1. php 缓存模块,PHP缓存之模块缓存(APC)_PHP教程
  2. H5调用Android播放视频
  3. EOS生产区块:解析插件producer_plugin
  4. 【英语天天读】Man's Youth
  5. springboot 定时器
  6. 学习笔记 VB.NET 特殊字符
  7. 构造模式(Builder Pattern)
  8. 【CCCC】L2-021 点赞狂魔 (25分),,模拟水题,map数组,间接排序
  9. vue 函数(二):callback回调函数
  10. 常用的webservice接口(转)
  11. 正弦余弦定理,求圆弧度或度数
  12. Matlab 生成方波信号
  13. 了解BigDecimal常用坑,不迷路
  14. java导出excel 边框不全_POI导出excel,合并单元格后没有边框
  15. 几万年前,有一只猴子大闹地府后删库跑路
  16. CreateCompatibleDC CreateCompatibleBitmap SelectObject详解
  17. Jetsonnano的环境配置--ros环境
  18. linux 远程挂载目录,linux开机自动挂载远程主机文件目录
  19. Cortex-M系列:错误异常
  20. thymeleaf拆分头部(head)显示异常问题

热门文章

  1. Elasticsearch常见字段映射类型之scaled_float
  2. 硬盘哨兵linux版,硬盘哨兵(Hard Disk Sentinel Pro)
  3. 为了生活佘家抛妻子一路向西
  4. Java----使用二维数组完成一个电影院选座系统
  5. ps2019布尔运算快捷键_ps教程——布尔运算的操作讲解
  6. 微信小程序源码分享合集-5
  7. 介绍一个很全面源码关于android 账户管理的源码
  8. 通过Python利用ADSL服务器和tinyproxy构建数据自己的动态代理IP池,用django+redis做web服务 (优化版)
  9. 软件工程毕业设计课题(87)微信小程序毕业设计PHP校园失物招领小程序系统设计与实现
  10. 超强大NLP标注工具——Prodigy