如何实现C#winform的多语言(devexpress控件)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何实现C#winform的多语言(devexpress控件)相关的知识,希望对你有一定的参考价值。
我在程序里使用了dev控件,程序还要求实现多语言,我的方法是把对应的语言内容存在xml文件中,从xml中读到hashtable,然后在模式窗口的listbox选取语言,传值给主界面,遍历主界面的control,如果hashtable里有这个control的名字就赋对应的text值,VS自带的控件都没问题,可是dev控件如XtraNavBarGroup这样的如何遍历的到,另外如何赋caption值
好吧,同求,不过遍历DEV的控件很简单,就是在caption的时候出问题,table中间只有两列分别是name和text,xml中间指定caption的话就会提示未将对象设置引用到实例,目前我也很纠结,不知道怎么做if (control.GetType() == typeof(DevExpress.XtraEditors.PanelControl))
GetSubControls(control.Controls, table);
if (control.GetType() == typeof(DevExpress.XtraEditors.GroupControl))
GetSubControls(control.Controls, table);
if (control.GetType() == typeof(DevExpress.XtraBars.Ribbon.RibbonPage))
GetSubControls(control.Controls, table);
if (control.GetType() == typeof(DevExpress.XtraBars.BarButtonItem))
GetSubControls(control.Controls, table);
这样就可以遍历到DEV的控件了,但是caption的值目前没有解决方案 参考技术A 这个时候要是想更改caption,那么你就必须知道他的上下子集
ribbon的子集是ribbonpage
ribbonpage 的子集是ribbonpageGroup
你所说的那些caption的是ribbonpageGroup的子集
所以只需套几个循环就可以了
foreach (Control item in this.Controls)
if (item.GetType()==typeof(RibbonControl))
foreach (RibbonPage c1 in c.Pages)
foreach (RibbonPageGroup c2 in c1.Groups)
for (int m = 0; m < c2.ItemLinks.Count; m++)
for (int n = 0; n < dt.Rows.Count; n++)
if (c2.ItemLinks[m].Caption == dt.Rows[n][pre].ToString())
c2.ItemLinks[m].Caption = dt.Rows[n][to].ToString();
break;
这样就出来了 参考技术B 多语言应该使用资源文件才对,你自己提供多语言框架的话会和有些控件不兼容
WinForm多语言版本实战项目演练
一、课程介绍
关于如何实现“WinForm多语言版本”网上有很多实现技术方案,可以说是“琳琅满目”,"包罗万象"。俗话说的好:一千个读者就有一千个哈姆雷特!如果您工作中恰好也遇到这种开发需求,但是为了一个自上手简单、维护方便、扩展性强的WinForm多语言版本技术方案而感到烦恼的话,那么很高兴恭喜你看到了阿笨的本次分享课程;阿笨结合的是自己在实际工作中遇到真实项目案例,特别的总结并且分享出来给大家,从而避免重复造轮子这种事情。
如果您对本次分享《WinForm多语言版本实战项目演练》课程感兴趣的话,那么请跟着阿笨一起学习吧。
废话不多说,直接上干货,我们不生产干货,我们只是干货的搬运工。
二、涉及覆盖的知识点
2.1、掌握XML、JSON序列化和反序列化常用技术手段。
2.2、WinForm桌面应用程序实战开发小技巧和技能。
2.3、如何优雅实现 WinForm 程序的界面多语言版本。
2.4、如何 优雅 实现在运行时切换 WinForm 程序的界面语言。
2.5、面向对象编程( OOP )设计技巧实战运用,实现应用程序的“高聚集、低耦合”。
三、实现原理和方案解读
3.1、关于多语言处理实现方案有几下几种:
3.2、关于多语言实现原理如下:
一句话:WinForm应用程序读取指定的语言包配置文件(.xml,json,data等自定义格式文件)
多语言实现原理图
四、实战演练源代码在线演示和解读
在线观看
五、总结
不信的话,扫一扫
以上是关于如何实现C#winform的多语言(devexpress控件)的主要内容,如果未能解决你的问题,请参考以下文章
在WinForm应用程序中快速实现多语言的处理--开发框架模块的整合