C#語(yǔ)言獲取要顯示頁(yè)面
C#語(yǔ)言有很多值得學(xué)習(xí)的地方,這里我們主要介紹C#語(yǔ)言獲取要顯示頁(yè)面,包括介紹name指的是控件的Name屬性,而text指的是控件的Text屬性等方面。
根據(jù)C#語(yǔ)言獲取要顯示頁(yè)面的顯示值
我們可以在每個(gè)頁(yè)面的Load()方法中,根據(jù)ReadDefaultLanguage()函數(shù),獲取這個(gè)頁(yè)面的顯示語(yǔ)言。取得默認(rèn)語(yǔ)言后,我們要該語(yǔ)言的資源文件中讀取相應(yīng)的資源。
該資源文件的格式如下(現(xiàn)只顯示英文的資源文件,中文資源文件的格式與其相同,只是text中的值換成了相應(yīng)的中文值):
- <?xml version="1.0" encoding="utf-8" ?>
- <Resource>
- <Form>
- <Name>FrmLogon</Name>
- <Controls>
- <Control name="frmlogon" text="User logon" />
- <Control name="lblusername" text="Username:" />
- <Control name="lblpassword" text="Password:" />
- <Control name="lbllanguage" text="Language:" />
- <Control name="btnlogon" text="Logon" />
- <Control name="btncancel" text="Exit" />
- <Control name="btnchangepwd" text="Change Password" />
- </Controls>
- </Form>
- <Form>
- <Name>FrmPasswordChange</Name>
- <Controls>
- <Control name="frmpasswordchange" text="Change password" />
- <Control name="lblusername" text="Username:" />
- <Control name="lblpassword" text="Old Password:" />
- <Control name="lblnewpassword" text="New Password:" />
- <Control name="lblpasswordconfirm" text="Password Confirm:" />
- <Control name="btnok" text="OK" />
- <Control name="btncancel" text="Return" />
- </Controls>
- </Form>
- </Resource>
我們把一個(gè)窗體中要實(shí)現(xiàn)多語(yǔ)言顯示的控件的名稱(chēng)全都放在< Controls>< /Controls>中,name指的是控件的Name屬性,而text指的是控件的Text屬性。
C#語(yǔ)言獲取要顯示頁(yè)面的函數(shù)如下:
- /// <summary>
- /// 讀取多語(yǔ)言的資源文件
- /// </summary>
- /// <param name="frmName">窗體的Name</param>
- /// <param name="lang">要顯示的語(yǔ)言(如ZH或EN)</param>
- /// <returns></returns>
- public static Hashtable ReadResource(string frmName,string lang){
- Hashtable result = new Hashtable();
- XmlReader reader = null;
- FileInfo fi = new FileInfo("resources/AppResource_" + lang + ".xml");
- if (!fi.Exists)
- reader = new XmlTextReader("resources/AppResource.xml");
- else
- reader = new XmlTextReader("resources/AppResource_" + lang + ".xml");
- XmlDocument doc = new XmlDocument();
- doc.Load(reader);
- XmlNode root = doc.DocumentElement;
- XmlNodeList nodelist = root.SelectNodes
("Form[Name='" + frmName + "']/Controls/Control");- foreach (XmlNode node in nodelist){
- try{
- XmlNode nodenode1 = node.SelectSingleNode("@name");
- XmlNode nodenode2 = node.SelectSingleNode("@text");
- if (node1 != null){
- result.Add(node1.InnerText.ToLower(),node2.InnerText);
- }
- }catch(FormatException fe){
- Console.WriteLine(fe.ToString());
- }
- }
- reader.Close();
- return result;
- }
以上介紹C#語(yǔ)言獲取要顯示頁(yè)面
【編輯推薦】