文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>遍历WinForm窗体 根据语言类型设置其控件Text显示

遍历WinForm窗体 根据语言类型设置其控件Text显示

时间:2010-11-23  来源:freeliver54

Form1 中 有一个Label1
    中文时显示 " 姓名:"
    英文时显示 " Name: "
    开发时 默认显示为 " Name: "
    有一个弹出的提示信息MessageBox.Show

中文时语言文件的内容:
Name:===姓名:
Home Address: ===家庭地址:


1、语言文件读取并设置控件Text显示的 处理类

 

代码 using System;
using System.Collections.Generic;
using System.Text;
using System.Collections;
using System.IO;
using System.Windows.Forms;

namespace LngTxtReader
{
    public class LngTxtReader
    {

        public Hashtable SetTextByLng(System.Windows.Forms.Form winform, string strLngTxtPath)
        {
            Hashtable ht = new Hashtable();
            if (winform == null)
            {
                return ht;
            }

            if (File.Exists(strLngTxtPath))
            {
                
                string strlineContent;
                int iIndex;

                System.IO.StreamReader file = new System.IO.StreamReader(strLngTxtPath);
                
                while ((strlineContent = file.ReadLine()) != null)
                {
                    iIndex = strlineContent.IndexOf("===");//语言文件的字串 以===区隔 key 和 value
                    ht.Add(strlineContent.Substring(0, iIndex), strlineContent.Substring(iIndex + 3, strlineContent.Length - iIndex - 3));
                }

                if (ht.Count > 0)
                {
                    fn_FindControl(winform.Controls, ht);
                }
            }

            return ht;
        }

        private void fn_FindControl(Control.ControlCollection ctls,Hashtable ht)
        {
            foreach (Control ctl in ctls)
            {
                if (ctl.HasChildren)
                {
                    fn_FindControl(ctl.Controls,ht);
                }
                else
                {
                    if (ht.Contains(ctl.Text))
                    {
                        ctl.Text = ht[ctl.Text].ToString();
                    }
                }
            }
        }

        public string GetMsgByLng(string strMsg, Hashtable ht)
        {
            string strMsgWithLng = strMsg;
            if (ht.Contains(strMsg))
            {
                strMsgWithLng = ht[strMsg].ToString();
            }
            return strMsgWithLng;
        }
    }
   
}

 

2、调用上述处理

代码    public Form1()
   {
        InitializeComponent();
        #region 语言显示
        string currDirPath = new System.IO.FileInfo(System.Reflection.Assembly.GetExecutingAssembly().Location).Directory.FullName;
        string strFilePath = currDirPath + "\\PassChcek_Lng1033.txt";
        LngTxtReader.LngTxtReader lngReader = LngTxtReader.LngTxtReader();
        ht = lngReader.SetTextByLng(this,strFilePath);
        #endregion
    }

    private void button1_Click(object sender, EventArgs e)
    {
        MessageBox.Show(new Xys.Comm.LngTxtReader.LngTxtReader().GetMsgByLng("Hello world",ht));
    }

 

 

 

 

相关阅读 更多 +
排行榜 更多 +
mirrox模组(玩家自制)手机版下载

mirrox模组(玩家自制)手机版下载

休闲益智 下载
集装箱模拟器手机版下载安装

集装箱模拟器手机版下载安装

模拟经营 下载
哔咔漫画app下载免费2025

哔咔漫画app下载免费2025

浏览阅读 下载