在我了解到的程序世界中,资源的初次登场是因为程序的国际化,当时的可执行文件已不再是单调的英文面孔,汉语、西班牙语等国际语言的支持强烈要求同样的程序,可以使用不同的语言界面。在当时,将程序逻辑代码和提示信息分离是一个不错的主意,提示信息分离出来成为一个资源文件而独立存在,在程序进行编译时再由编译器链接到可执行文件中。直到现在,资源在这个方面依然扮演着重要的角色。以下以VB.net的一个小例子说明资源的存在:
例一:时下许多网上的软件都有什么多国语言版之类的说法,实在点就是同一程序在安装或使用过程中有个国家区域选项,当你选择了对应的国家时,程序就会显示使用相应国家语言的界面。其实在编程实现这种功能非常简单,只不过是使程序同时嵌入几个不同语言的资源文件而已,以下示例就是一个同时支持英文和中文界面的示例程序。程序创建完整步骤如下:
1、在VB.net中新建一个项目,类型选择windows应用程序,项目名称改为resourcesample1。
2、在form1上放一个Lable控件。
3、选择窗体form1,按以下指示设置属性:
(1)Locallizable 属性设为True,这一步是关键,这个属性告诉net环境,要使用资源文件来保存窗体及窗体内的各种控件的属性值。
(2)选择窗体的language属性,将其设为英语。然后按下表设置窗体及lable控件的其它属性:
| 控件名称 | 属性 | 属性值 |
| Form1 | text | Form |
| Label | Text | Let's speak English! |
窗体外观如下:

(3)重新选择窗体的language属性,将其设为中文(简体)。然后按下表设置窗体及lable控件的其它属性:
| 控件名称 | 属性 | 属性值 |
| Form1 | text | 窗体 |
| Label | Text |
让我们说中文!
窗体外观如下:

大家也许很奇怪,为什么要对窗体及label的text属性进行两次不同的赋值呢?其实答案很简单,vs.net太聪明了,由于我们使用Locallizable 属性告诉net环境,要使用资源文件来保存窗体及窗体内的各种控件的属性值,当使用不同的language属性,它会将窗体及其上控件的属性按语言分别记录在不同的资源文件内。不信你将language属性重新设为英语看看,第一个英文界面的窗体又跳出来了吧8-D
4、如果说可视化编程是光明之途的话,那么我们的快乐时光到此结束,由于net还没有智能化到会判断什么时候使用什么国家的语言界面的程度(如果net 太智能了,程序员就不幸了,下岗啊,谁受得了?!),所以以下必须由我们自己编写代码确定程序的实际界面显示。
打开 form1的New过程,在InitializeComponent()前加入如下代码(这段代码作用是在窗体初始化组件之前,按指定的语言区域信息载入相应的界面资源文件):
|
REM 一般情况下程序都是使用读取初始化文件的方法来取得语言设置信息,但本例程为了简便起见,仅使用一个对话框提示用户选择适合自己的语言。
|
剩下的事这没什么好说的了,按运行吧,在出现对话框时试着点OK或Cancel看看你的杰作吧,很酷的同时支持中英文界面的示例程序哦!
| 共3页: 1 [2] [3] 下一页 | ||
|
|
|||
| · 51CTO主编推荐经典专题 · RAID——磁盘阵列基础 · 充电计划之热门IT认证.. · 51CTO技术自测 挑战自.. · CISSP认证成长之路 · AMD Phenom三核处理器.. · 国际文档格式标准开战 · 2007年互联网大会 |
· 我是黑客我怕谁——讲.. · ARP攻击防范与解决方案 · Solaris 10 配置管理 · Solaris基础知识入门 · RIP路由协议专栏 · MPLS路由协议专栏 · OSPF路由协议专栏 · 思科路由器产品 |
||
|
|||
| · Java基础教程 · VPN技术 · ARP攻击防范与解决方案 · SQL Server 2005全解 · SOA 面向服务架构 · SQL Server 2005全解 · Java编程开发手册 · RAID——磁盘阵列基础 |
· 三层交换技术专题 · SQL Server入门到精通 · Windows Server 2003企.. · Windows远程桌面应用 · C#技术开发指南 · VPN技术 · Solaris 10 配置管理 · C#技术开发指南 |
||
|
|||
| · ARP攻击防范与解决方案 · VPN技术 · SQL Server 2005全解 · Java基础教程 · SQL Server入门到精通 · SQL Server 2005全解 · SOA 面向服务架构 · Java编程开发手册 |
· C#技术开发指南 · 三层交换技术专题 · C#技术开发指南 · Windows远程桌面应用 · RAID——磁盘阵列基础 · Windows Server 2003企.. · 邮件服务器专题 · wimax技术与趋势 |
||
| ·DB2 Viper快速入门 ·DB2 9数据库的镜像分割与.. |
·将XML应用程序从DB2 8.x.. ·DB2 9中的pureXML:如何.. |
| ·服务器中的“傻瓜机”在.. ·盖茨也喜欢登录Youtube看.. |
· · |
| ·拯救系统管理员 ·美国选民:我为什么选布什 |
·VMware公司中文命名挑战赛 ·我们真缺乏创新吗? |
| ·J0ker的CISSP之路:复习-.. ·J0ker的CISSP之路:复习-I.. |
·9月第3周安全回顾 内网安.. ·教你几招识别和防御Web网.. |
| · NGN:下一代网络 · 网络访问中断大排查 · FTTx光纤接入 |
· 教你使用Anti ARP Sniff.. · 网络嗅探教程:使用Snif.. · 常见病毒手工清除方法大.. |
| · C++是垃圾语言?! · 2007年IT界七大抄袭事件 · Java实用开发全集 |
· 解析Ajax开发框架 走进A.. · 基于Google Maps与Ajax.. · 基于Google Maps与Ajax.. |
| · 热门 IT 培训认证官方资.. · Ubuntu 中文开源频道 · Solaris基础知识入门 |
· 费力不讨好 数据中心主.. · AMD Phenom三核处理器解.. · 51CTO主编推荐经典专题 |
| · 甲骨文Oracle 11g正式发.. · Oracle数据库开发之PL/S.. · Oracle数据库开发基础教.. |
· 存储2006,一个并购的大.. · IDC宣布浪潮蝉联存储市.. · 双机热备技术 |