由于时间紧促,来不及去看.Net的全球化实现方法,所以自己写了个资源文件的实现方法,来实现工程的多语言版需求。原理很简单,将一个窗体会用到的所有字符串,包括各种控件的显示文本,用序列化方法保存到文件中。定义一个继承类BaseForm,在窗体加载中读出资源文件,实现语言化。
以下让我们来具体实现。
一、ResCollection类
此类实现了资源文件的结构定义。
1
using System;
2
using System.Collections;
3
4
namespace FaibClass.Language
5
}
2
3
4
5
二、ResManager类
此类实现了资源文件结构的序列化保存与读取,并语言化WinForm控件。
1
using System;
2
using System.Collections;
3
using System.Runtime.Serialization;
4
using System.Runtime.Serialization.Formatters;
5
using System.Runtime.Serialization.Formatters.Binary;
6
using System.Windows.Forms;
7
using System.IO;
8
9
namespace FaibClass.Language
10
2
3
4
5
6
7
8
9
10
Menu、Toolbar、StatusBar、ListView、TabPage是以Text来命名资源名的,其余控件使用控件的Name来命名。
三、继承类BaseForm
1
using System;
2
using System.Windows.Forms;
3
using System.ComponentModel;
4
using FaibClass.Language;
5
6
namespace FaibSoft.CheaterMember
7
2
3
4
5
6
7
使用本窗体资源直接使用ValueList["资源名"],使用公共资源使用BaseValueList["资源名"]
相关下载资源编辑器 、示例